Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R优化嵌套在for循环中的while循环,以在数据帧中引入缺失值_R_Performance_For Loop_While Loop_Na - Fatal编程技术网

R优化嵌套在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

我有一个(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,]<-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
的选项。