我正在一个实验室进行研究,导师已经开发了一个分析遗传数据的模型,该模型利用了方差分析。我已经模拟了一个数据集,我想用它来评估我们的模型处理不同级别的缺失数据的能力。
我们的数据集由15个物种组成,每个物种有4个,我们通过命名列'A'(x4)'B'(x4)等来表示。每行代表一个基因。
我正在尝试提供一个随机删除1%数据的代码,但每个物种至少有2个人拥有有效数据,否则我们的模型将退出(因为它是基于ANOVA的)。
我意识到这使得“随机”丢失的数据不那么随机,但我们正在尝试不同的方法。重要的是,丢失的数据随机分配。我希望有人可以帮我设置它?
答案 0 :(得分:0)
我尝试做一个可能有帮助的玩具示例
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))