我有以下对象variable1
:
GRanges object with 25605 ranges and 2 metadata columns:
seqnames ranges strand | totgenes density
<Rle> <IRanges> <Rle> | <integer> <numeric>
[1] chr1 [3000001, 3100000] * | 2 0.2
[2] chr1 [3100001, 3200000] * | 1 0.1
[3] chr1 [3200001, 3300000] * | 1 0.1
[4] chr1 [3300001, 3400000] * | 1 0.1
[5] chr1 [3400001, 3500000] * | 2 0.2
... ... ... ... ... ... ...
[25601] chrUn_random [1600001, 1700000] * | 0 0
[25602] chrUn_random [1900001, 2000000] * | 0 0
[25603] chrUn_random [2100001, 2200000] * | 0 0
[25604] chrUn_random [2400001, 2500000] * | 0 0
[25605] chrUn_random [5900001, 5900358] * | 0 0
我想从这个对象中随机取100行。为此:
sample(variable1, 100)
但是,我想根据密度列使用prob=
进行抽样。我可以这样做:
sample(sort(unique(variable1$density)), prob=table(sort(variable1$density))/25605, replace=TRUE, size=100)
但是那样,我只得到密度值。我想得到整行。
答案 0 :(得分:0)
应该这样做:
sam <- sample(variable1, size = 100, replace = TRUE, prob = variable1$density)
可以使用$
访问GRanges对象中的元数据列(位于上面一行的右侧),就像在数据框中一样。