在数据框中替换空字符串需要很长时间

时间:2014-02-06 09:22:06

标签: r

我在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 

   }
}

2 个答案:

答案 0 :(得分:9)

这应该有效:

myDF[myDF==''] <- NA

答案 1 :(得分:2)

您还可以使用is.na<-功能:

is.na(myDF) <- myDF == ''