我喜欢从我的数据框的一列中的值生成一个随机集,该列应该具有类似于82723的平均值,并且我想打印我作为样本采用的数据帧的行。 我使用了这段代码,但听起来它不起作用。
while(x<-sample(negative_set$V4, size=91)) {
+ if (mean(x)==821800:821700)print
由于
我的数据是这样的:
V1 V2 V3 V4 V5
1 chr1 752751 753092 7603 ENSG00000240453.1
2 chr1 752751 755214 2463 ENSG00000177757.1
3 chr1 761586 762902 1316 ENSG00000225880.4
4 chr1 879584 879955 19695 ENSG00000187634.6
5 chr1 879584 894689 15105 ENSG00000188976.6
6 chr1 934342 935552 1210 ENSG00000188290.6
7 chr1 1167629 1170421 2792 ENSG00000176022.3
8 chr1 1340841 1341132 291 ENSG00000264293.1
9 chr1 1370241 1378262 8021 ENSG00000179403.10
10 chr1 1550795 1551175 2037 ENSG00000272106.1
11 chr1 1550795 1565990 15195 ENSG00000197530.8
12 chr1 1592939 1594063 3277 ENSG00000272004.1
13 chr1 1592939 1624167 31228 ENSG00000189339.7
输出应采用相同的格式,但V4列的平均值为82800。
答案 0 :(得分:0)
当你对输出施加约束时,说什么是“随机”是有点棘手的。例如,您可以生成n
个样本,计算平均值$ mean_n $,然后找到V4
值为$ n *(82800-mean_n)$的行。鉴于您的实际V4
数据集,这可能无法实现。
也许你真正想要的是:
1)计算mean(V4)
2)如果该值小于82800,则随机删除某些行V4< 82800
3)如果该值大于8200,则随机删除某些行V4 > 82800
执行此操作的代码应该非常简单:只需抓取矩阵的子集并使用它们。