我正在处理一个数据集,其中一个列是ISO国家代码(例如,美国、GB、DE等)。这些代码之一是NA,即纳米比亚。
写CSV的时候
write.csv2(df_FINAL, "Final_Merge.csv", col.names =TRUE, row.names = FALSE, na ="")
“国家代码”栏中纳米比亚的单元格将作为空白打印。
有没有办法让na="",并将一栏排除在这个过程中,这样我就可以避免抹去纳米比亚的价值观吗?
我不能更改国家代码,因为它必须在许多数据文件上保持一致。
添加注释:我查看了脚本,问题似乎是R在导入dataframe时如何读取值。基本上,R将纳米比亚的细胞解读为不可得的。在此之后,无论发生什么,它们仍将是不可用的。解决方案:使用read.csv2时,按照anwswer中的建议添加na.strings=""。
谢谢!
发布于 2019-10-23 08:36:01
如果您的问题是将实际字符串" NA“读入NA值,则read.csv2函数有一个参数na.strings,该参数的默认值为"NA"。这应该改变为不同的东西,甚至可能是""。我还看到在某些情况下使用了"<NA>"。
发布于 2019-10-23 08:15:04
在编写之前,可以先用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的源文件也有问题,那么将na.strings设置为它的默认NA值以外的其他值:
df_FINAL <- read.csv(file="path/to/your/input.csv", na.strings="")https://stackoverflow.com/questions/58518312
复制相似问题