我正在处理一个列为ISO国家(地区)代码(例如US,GB,DE等)的数据集。这些代码之一是NA,即纳米比亚。
编写CSV时
write.csv2(df_FINAL, "Final_Merge.csv", col.names =TRUE, row.names = FALSE, na ="")
“国家代码”列中纳米比亚的单元格将打印为空白。
是否有办法拥有na=""
并从流程中排除一列,以便避免擦除纳米比亚的价值观?
我无法更改国家/地区代码,因为它必须在许多数据帧上保持一致。
添加了评论:我检查了脚本,似乎问题是R在导入数据框时如何读取值。基本上,R将纳米比亚单元读取为“不可用”单元。之后,无论如何,它们将保持为“不可用”。解决方案:使用read.csv2
时,请按照答案中的建议添加na.strings=""
。
谢谢!
答案 0 :(得分:2)
如果您的问题是将实际的字符串“ NA”读取为NA值,则read.csv2函数具有参数na.strings
,其默认值为"NA"
。应该将其更改为其他内容,甚至可以更改为""
。我还看到在某些情况下使用"<NA>"
。
答案 1 :(得分:1)
在编写之前,您可以先在R脚本中用空字符串替换NA
值。然后,按原样致电write.csv
:
df_FINAL <- data.frame(iso <- c("US", "GB", "DE", "NA", NA), stringsAsFactors=FALSE)
df_FINAL$iso[is.na(df_FINAL$iso)] <- ""
write.csv2(df_FINAL, "Final_Merge.csv", col.names =TRUE, row.names = FALSE, na ="")
如果您在读取包含原始码NA
的纳米比亚ISO国家/地区代码的源文件时遇到问题,请将na.strings
设置为默认值{{1 }}值:
NA