我正在实验室里和一位导师一起做研究,他开发了一种分析遗传数据的模型,该模型利用方差分析。我已经模拟了一个数据集,我想使用它来评估我们的模型处理不同级别丢失数据的能力。
我们的数据集由15个物种组成,每个物种有4个个体,我们通过将列命名为'A'(x4) 'B'(x4)...etc来表示这些物种。每一行代表一个基因。

我试图想出一个随机删除1%数据的代码,但这样每个物种至少有2个具有有效数据的个体,否则我们的模型就会退出(因为它是基于方差分析的)。
我意识到这使得“随机”丢失的数据不那么随机,但我们正在尝试不同的方法。重要的是,丢失的数据是随机的。我希望有人能帮我把这个弄好?
发布于 2017-07-27 16:24:31
我试着做一个玩具的例子,也许能有所帮助。
is_valid_df<-function(df,col,val){
all(table(df[col])>val)
}
filter_function<-function(df,perc,col,val){
n=dim(df)[1]
filter<-sample(1:n,n*perc)
if(is_valid_df(df[-filter,],col,val)){
return(df[-filter,])
}else{
filter_function(df,perc,col,val)
cat("resampling\n")
}
}
set.seed(20)
a<-(filter_function(iris,0.1,"Species",44))https://stackoverflow.com/questions/45343663
复制相似问题