【发布时间】:2019-11-17 17:13:12
【问题描述】:
我有一个包含 150000 行和 3 列的大型数据框 SYN_data,分别名为 SNP、Gene 和 count。有一个包含 2545 个计数值的列表 r,其中还包括一些重复项。现在我需要从 SYN_data 中随机抽样 2545 行而不替换,其计数值与列表 r 中的相似。通过使用此代码,我可以成功地做到这一点:
test1 <- SYN_data[ sample( which( SYN_data$count %in% r ) , 2545 ) , ]
第二个条件是Genes的唯一长度应该是1671,总共2545行,意味着有些Genes有超过1个SNP。有什么方法可以将此条件合并到同一代码中,或者满足所有条件的任何其他代码都会非常有帮助。谢谢!
样本数据:
# list
r
> 1,7,3,14,9
SYN_data$SNP <- c('1- 10068526', '1- 10129891', '1- 10200104',
'1- 10200491', '1- 10470141', '1- 10671598')
SYN_data$Gene <- c('AT1G28640', 'AT1G29030', 'AT1G29180',
'AT1G29180', 'AT1G29900', 'AT1G30290')
SYN_data$count <- c('14', '9', '3', '3', '7', '1')
【问题讨论】:
-
所以您只希望样本中每个基因有 1 个 snp?
-
我会说有多个snp的基因很少,只有一个snp的基因很少。重要的是 2545 个 snps 中的 1671 个独特基因的总数,其他相同计数值的条件也应满足列表 r。
标签: r random bioinformatics sample