看板 R_Language 關於我們 聯絡資訊
[問題類型]: 請把以下不需要的部份刪除 意見調查(我對R 有個很棒的想法,想問問大家的意見) 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 請把以下不需要的部份刪除 新手(沒寫過程式,R 是我的第一次) [問題敘述]: 大家好, 我有1000個baby names的dataset (dataset只有一個) 名字長相為: Jacob (1) Benjamin (25) Hunter (49) Diego (73) Miguel (97) Michael (2) Zachary (26) 以上為第一個row 我使用read.fwf想讀入dataset 但錯誤訊息顯示我沒有widths 我的code為 bnames <- read.fwf(paste0(dirdata, "top-1000-baby-names.txt",widths, header = FALSE, sep = "\t", skip = 0, row.names, col.names, n = -1, buffersize = 2000, fileEncoding = "")) 請問: 1)我是否應該一項一項define widths 只是遇到()我該怎麼處理? ()內為rank 2)若是我轉換為csv檔案會比較好讀入嗎? 謝謝大家~~ [程式範例]: [關鍵字]: 選擇性,也許未來有用 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 66.66.198.92 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1524807246.A.FDB.html
andrew43: 讀入後針對"(數字)"做字串處理再轉回數字型態就好了 04/27 14:43
andrew43: x <- c("(26)", "(1234456)", "(0)") 04/27 14:45
andrew43: as.numeric(gsub("^\\(([[:digit:]]+)\\)$", "\\1", x)) 04/27 14:46
andrew43: 喔我看錯問題了... sorry 04/27 14:47
andrew43: 各列欄位各數不同可用data.table::fread(..., fill = T) 04/27 14:52
andrew43: 若欄數相同則read.table(..., sep=" ")就可以了 04/27 14:55
andrew43: 至於read.fwf適合各欄內字元數皆相同的情況 04/27 14:56
Edster: 這到不一定, 如果是氣象資料, 空白也是資料的這種就要 04/27 17:18
Edster: 用read.fwf, 要看的資料決定.我是花半小時多自己建width 04/27 17:20
Edster: 應該沒有其他聰明的方法了. 04/27 17:21
andrew43: 嗯嗯我確實沒考慮空白怎麼看待。視之後需求。 04/27 19:08
AmigoSafin: 了解~~似乎是沒有,但我看解答用scan讀入 我再試試tks 04/28 23:05