[問題類型]:
請把以下不需要的部份刪除
意見調查(我對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檔案會比較好讀入嗎?
謝謝大家~~
[程式範例]:
[關鍵字]:
選擇性,也許未來有用
作者:
andrew43 (討厭有好心推文後刪文者)
2018-04-27 14:43:00讀入後針對"(數字)"做字串處理再轉回數字型態就好了x <- c("(26)", "(1234456)", "(0)")as.numeric(gsub("^\\(([[:digit:]]+)\\)$", "\\1", x))喔我看錯問題了... sorry各列欄位各數不同可用data.table::fread(..., fill = T)若欄數相同則read.table(..., sep=" ")就可以了至於read.fwf適合各欄內字元數皆相同的情況
作者:
Edster (Edster)
2018-04-27 17:18:00這到不一定, 如果是氣象資料, 空白也是資料的這種就要用read.fwf, 要看的資料決定.我是花半小時多自己建width應該沒有其他聰明的方法了.