[問題] read.csv 中 stringsAsFactors 擅自更動文字

看板R_Language作者 (Edster)時間10年前 (2015/10/18 11:54), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
剛剛在debug過程中,突然發現 base::read.csv(x, stringsAsFactors = TRUE) 對負數讀取會有不同的結果 一串應該是 numeric 的正數,其中或有一些負數與NA。 當 stringsAsFactors = TRUE 讀入的結果應該是 -0.4 會變成 (0.4) 然後文字型態會變成 character 必須用 base::read.csv(x, as.is=TRUE, stringsAsFactors = TRUE) 有人知道為何如此設計? and, 有沒有辦法讓 base::read.table 中的 as.is 直接永久設定成 TRUE -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.241.19.20 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1445140452.A.B0C.html

10/18 12:04, , 1F
標題分類不要亂刪qq
10/18 12:04, 1F

10/18 17:17, , 2F
可否提供簡單例子?你不是說都是數字又怎麼有文字資料?
10/18 17:17, 2F

10/18 21:33, , 3F
我也很納悶,那時的檔案已經被我刪掉了。現在卻重創不出來
10/18 21:33, 3F

10/18 21:34, , 4F
我有用notepad++看過被讀入成文字(0.4)實際的數值是-0.4
10/18 21:34, 4F

10/18 21:35, , 5F
檢查過該檔案,只要數值是負數的全部被讀成類似的格式
10/18 21:35, 5F

10/18 21:36, , 6F
因此該欄位被判斷成character, 轉成numeric時會是NA
10/18 21:36, 6F

10/18 21:37, , 7F
正確的讀法如上所述, 需要加as.is=TRUE
10/18 21:37, 7F

10/18 21:41, , 8F
沒有例子,無法判斷...
10/18 21:41, 8F
文章代碼(AID): #1M8nVaiC (R_Language)
文章代碼(AID): #1M8nVaiC (R_Language)