R优化嵌套在for循环中的while循环,以在数据帧中引入缺失值
我有一个(70行x 4列)数据帧(数据),它有10%的NAs。我的数据帧每行不超过一个NA。 从这个数据集中,我想用60%的NAs生成10个数据帧。但我不想让所有的行都是空的。所以我在for循环中嵌套了一个while循环。代码正在运行,但运行时间很长。由于我需要对许多数据集运行这个循环,我想知道是否有一种简单的方法来改进它 我的数据框如下所示:R优化嵌套在for循环中的while循环,以在数据帧中引入缺失值,r,performance,for-loop,while-loop,na,R,Performance,For Loop,While Loop,Na,我有一个(70行x 4列)数据帧(数据),它有10%的NAs。我的数据帧每行不超过一个NA。 从这个数据集中,我想用60%的NAs生成10个数据帧。但我不想让所有的行都是空的。所以我在for循环中嵌套了一个while循环。代码正在运行,但运行时间很长。由于我需要对许多数据集运行这个循环,我想知道是否有一种简单的方法来改进它 我的数据框如下所示: library(missForest) data<-iris[1:70,1:4] for(i in 1:28){ data[i,]<-p
library(missForest)
data<-iris[1:70,1:4]
for(i in 1:28){
data[i,]<-prodNA(data[i,],noNA =0.25)
}
库(密斯林)
数据我不确定这是否是您想要的:
library(missForest)
data1<-iris[1:70,1:4]
for(i in 1:28){
data1[i,]<-prodNA(mydata[i,],noNA =0.10)
}
table(is.na(data1))
n<-10
data2<-do.call("rbind", replicate(n, data1, simplify=FALSE))
table(is.na(data2))
data3<-prodNA(data2,noNA=0.55)
> table(is.na(data3))
FALSE TRUE
1133 1667
库(密斯林)
数据1我不确定这是否是您想要的:
library(missForest)
data1<-iris[1:70,1:4]
for(i in 1:28){
data1[i,]<-prodNA(mydata[i,],noNA =0.10)
}
table(is.na(data1))
n<-10
data2<-do.call("rbind", replicate(n, data1, simplify=FALSE))
table(is.na(data2))
data3<-prodNA(data2,noNA=0.55)
> table(is.na(data3))
FALSE TRUE
1133 1667
库(密斯林)
数据1您能告诉我您想如何分配NA吗?一个数据比其他数据拥有更多NA可以吗?应该随机分配NA,这样一个数据可以比其他数据拥有更多NA,唯一的条件是避免所有NA行。你能告诉我你想如何分配NA行吗?一个数据比其他数据有更多NA行可以吗?应该随机分配NA,这样一个数据可以比其他数据有更多NA行,唯一的条件是避免所有NA行。谢谢你的回答!避免“for”循环是一个很好的解决方案,但在最终的数据集中有所有NA行(=没有任何值的行)。“while”循环应该可以避免这个问题。实际上,“while”循环是脚本中需要花费很长时间的部分。是的,我没有意识到ProdNA
没有排除同一行中所有na
的选项。谢谢你的回答!避免“for”循环是一个很好的解决方案,但在最终的数据集中有所有NA行(=没有任何值的行)。“while”循环应该可以避免这个问题。实际上,“while”循环是脚本中需要花费很长时间的部分。是的,我没有意识到ProdNA
没有排除同一行中所有na
的选项。