在R中随机编辑索引子集的样本子集?

时间:2014-06-03 13:47:52

标签: r random indexing

我有一个关于在R中索引和编辑数据结构的问题。例如,假设我有一个数据框myDF

myDF=data.frame(a=rep(c(1,2),10), b=rep(0,20), c=rep(0,20), d=rep(0,20))

我知道我可以使用列a来索引其他列并对其进行编辑,如下所示:

myDF$b[myDF$a==1]=3

我知道我可以使用sample()从列中随机获取5个单元格并按照以下方式编辑它们:

myDF$c[sample(1:20,5)]=6

但是,为了编辑目的,如何从基于另一列选择的那些中随机选择特定数量的单元格?例如。如果我想将d中的5个随机单元格的值设置为4,并且约束所有这些单元格也来自a==1的行?

1 个答案:

答案 0 :(得分:1)

您可以合并sample和子集,如:

myDF$d[sample(which(myDF$a==1),5)]<-4

which选择符合条件的行,然后sample只选择其中的五行,然后更新这些行d值。