我在R中有一个11M行和46列的数据帧。某些字段包含空字符串(“”)。我需要用NA替换那些空字符串,因为write.dta
(在foreign
包中)无法处理空字符串。
然而,我的for循环需要很长时间(每列约15分钟;有时R /整个系统崩溃)。我在8GB RAM Mac上运行RStudio(R 3.0.2)。有谁知道更快的方式?
for (i in 1:46){
if (length(which(myDF[,i]==""))!=0) {
myDF[,i][which(myDF[,i]=="")]<-NA
}
}
答案 0 :(得分:9)
这应该有效:
myDF[myDF==''] <- NA
答案 1 :(得分:2)
您还可以使用is.na<-
功能:
is.na(myDF) <- myDF == ''