我在R中有一个有45行的数据矩阵。每行代表单个样品的值。我需要做一个试验模拟;我想随机配对样本并计算它们的差异。我希望从所有可能的排列和组合中获得大量采样(可能是10000)。 这就是我到目前为止成功的方法: - 我的数据矩阵("数据")有45行2列。我随机选择了45行,并从另一个随机生成的45行中减去。
n1<-(data[sample(nrow(data),size=45,replace=F),])-(data[sample(nrow(data),size=45,replace=F),])
这给了我一组45的随机差异。 我做了50个这样的向量(n1到n50)并做了rbind,这给了我一个包含随机差异的大数据矩阵。 当然,第一随机集和第二随机集之间的许多行是相同的并且被抵消。我用以下代码删除了它:
row_sub = apply(new, 1, function(row) all(row !=0 ))
new.remove.zero<-new[row_sub,]
但是,有更清洁的方法吗?生成所有可能的随机行对的简单方法,计算它们的差异,将它们绑定在一起作为新矩阵? 提前致谢。