在R中的数据表中创建“结构化”缺失数据

时间:2017-07-27 07:08:06

标签: r missing-data genetics

我正在一个实验室进行研究,导师已经开发了一个分析遗传数据的模型,该模型利用了方差分析。我已经模拟了一个数据集,我想用它来评估我们的模型处理不同级别的缺失数据的能力。

我们的数据集由15个物种组成,每个物种有4个,我们通过命名列'A'(x4)'B'(x4)等来表示。每行代表一个基因。

enter image description here

我正在尝试提供一个随机删除1%数据的代码,但每个物种至少有2个人拥有有效数据,否则我们的模型将退出(因为它是基于ANOVA的)。

我意识到这使得“随机”丢失的数据不那么随机,但我们正在尝试不同的方法。重要的是,丢失的数据随机分配。我希望有人可以帮我设置它?

1 个答案:

答案 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))