我正在匯入一個包含 700k 行的 csv,并且 R 顯示沒有NA值,盡管資料具有空白值并且代碼將它們定義為NA. 此外,當我過濾我確定沒有特定值的特定行時,它會顯示除 2 之外可用的隨機值NA。匯出 csv,過濾后,檔案顯示一些空白值,R 顯示為隨機值。但是,我用一小部分資料樣本測驗了代碼,并沒有出現這個問題,而且NAs顯示正常。可能是什么問題呢?有解決方案或替代方案嗎?我不明白可能在 R 中產生該錯誤的資料大小的差異。
匯入代碼
DB <- read.csv("DB.CSV", sep = "~", header=FALSE, na.strings = c(""))
過濾器代碼
DB_MA <- DB %>% filter(ID_COM == 11001, REGISTER == "MA")
匯出代碼
write.csv(DB_MA,"DB_MA.csv", row.names = FALSE)
uj5u.com熱心網友回復:
這是三個 MCVE,它們表明使用波浪號作為分隔符不會改變引數read.csv處理長度為 0 字符值的行為。na.strings
DB <- read.csv(text='a~b~""~d\ne~""f~g\n', sep = "~",
header=FALSE, na.strings = c(""))
DB
#------------
V1 V2 V3 V4
1 a b <NA> d
2 e f g <NA>
#--- Now use an explicit length-o character value---
DB2 <- read.csv(text='a~b~~d\ne~f~g\n', sep = "~",
header=FALSE, na.strings = c(""))
DB2
#----------
V1 V2 V3 V4
1 a b <NA> d
2 e f g <NA>
#---Now leave out the na.strings parameter so it is the default= "NA"
DB3 <- read.csv(text='a~b~~d\ne~f~g\n', sep = "~",
header=FALSE)
DB3
#-------
V1 V2 V3 V4
1 a b d
2 e f g
nchar(DB3[1,3])
#[1] 0
我懷疑您在某些地方有一個實體" "或一些非列印字符。您應該能夠使用該nchar功能來檢查這些位置以檢驗我的假設(更多的是堅定的預測)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/409994.html
標籤:
