[問題] Read in ranks

看板R_Language作者時間7年前 (2018/04/27 05:34), 編輯推噓2(2010)
留言12則, 3人參與, 7年前最新討論串1/1
[問題類型]: 請把以下不需要的部份刪除 意見調查(我對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

04/27 14:43, 7年前 , 1F
讀入後針對"(數字)"做字串處理再轉回數字型態就好了
04/27 14:43, 1F

04/27 14:45, 7年前 , 2F
x <- c("(26)", "(1234456)", "(0)")
04/27 14:45, 2F

04/27 14:46, 7年前 , 3F
as.numeric(gsub("^\\(([[:digit:]]+)\\)$", "\\1", x))
04/27 14:46, 3F

04/27 14:47, 7年前 , 4F
喔我看錯問題了... sorry
04/27 14:47, 4F

04/27 14:52, 7年前 , 5F
各列欄位各數不同可用data.table::fread(..., fill = T)
04/27 14:52, 5F

04/27 14:55, 7年前 , 6F
若欄數相同則read.table(..., sep=" ")就可以了
04/27 14:55, 6F

04/27 14:56, 7年前 , 7F
至於read.fwf適合各欄內字元數皆相同的情況
04/27 14:56, 7F

04/27 17:18, 7年前 , 8F
這到不一定, 如果是氣象資料, 空白也是資料的這種就要
04/27 17:18, 8F

04/27 17:20, 7年前 , 9F
用read.fwf, 要看的資料決定.我是花半小時多自己建width
04/27 17:20, 9F

04/27 17:21, 7年前 , 10F
應該沒有其他聰明的方法了.
04/27 17:21, 10F

04/27 19:08, 7年前 , 11F
嗯嗯我確實沒考慮空白怎麼看待。視之後需求。
04/27 19:08, 11F

04/28 23:05, 7年前 , 12F
了解~~似乎是沒有,但我看解答用scan讀入 我再試試tks
04/28 23:05, 12F
文章代碼(AID): #1QuhPE_R (R_Language)
文章代碼(AID): #1QuhPE_R (R_Language)