作者AmigoSafin ()
看板R_Language
標題[問題] Read in ranks
時間Fri Apr 27 13:34:02 2018
[問題類型]:
請把以下不需要的部份刪除
意見調查(我對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://webptt.com/m.aspx?n=bbs/R_Language/M.1524807246.A.FDB.html
1F:→ andrew43: 讀入後針對"(數字)"做字串處理再轉回數字型態就好了 04/27 14:43
2F:→ andrew43: x <- c("(26)", "(1234456)", "(0)") 04/27 14:45
3F:→ andrew43: as.numeric(gsub("^\\(([[:digit:]]+)\\)$", "\\1", x)) 04/27 14:46
4F:→ andrew43: 喔我看錯問題了... sorry 04/27 14:47
5F:→ andrew43: 各列欄位各數不同可用data.table::fread(..., fill = T) 04/27 14:52
6F:→ andrew43: 若欄數相同則read.table(..., sep=" ")就可以了 04/27 14:55
7F:→ andrew43: 至於read.fwf適合各欄內字元數皆相同的情況 04/27 14:56
8F:推 Edster: 這到不一定, 如果是氣象資料, 空白也是資料的這種就要 04/27 17:18
9F:→ Edster: 用read.fwf, 要看的資料決定.我是花半小時多自己建width 04/27 17:20
10F:→ Edster: 應該沒有其他聰明的方法了. 04/27 17:21
11F:推 andrew43: 嗯嗯我確實沒考慮空白怎麼看待。視之後需求。 04/27 19:08
12F:→ AmigoSafin: 了解~~似乎是沒有,但我看解答用scan讀入 我再試試tks 04/28 23:05