我的data.table
包含一列DT$Locale
具有以下条目:
DT[,unique(Locale)]
downstream upstream intergenic intron intron,nc regulatory synonymous
non_coding_exon,nc 5_prime_UTR splice,5_prime_UTR splice,intron missense 3_prime_UTR splice,intron,nc
splice,synonymous splice_donor synonymous,NMD mature_miRNA splice_donor,nc splice_acceptor 3_prime_UTR,NMD
stop_gained missense,NMD 5_prime_UTR,NMD intron,NMD splice,intron,NMD splice,non_coding_exon,nc missense,splice
splice_acceptor,nc coding_sequence,NMD missense,splice,NMD stop_lost initiator_codon splice_acceptor,NMD
我还有另外两列,具有以下格式:
DT[,unique(Cohort)]
[1] CEU Lupus RA YRI RALoci
DT[,unique(Locus)]
[1] 1.110927656.111927656 1.194335780.195335780 1.217775877.218775877 1.236880267.237880267 1.85471701.86471701 10.52963302.53963302 10.6118896.7118896
[8] 10.74879027.75879027 11.20046869.21046869 12.37676238.38676238 12.38077040.39077040 13.92438484.93438484 14.47539055.48539055 14.89244697.90244697
[15] 14.98090299.99090299 14.98556636.99556636 15.101213744.102213744 15.47426024.48426024 16.13885034.14885034 16.27399400.28399400 16.48056833.49056833
[22] 16.5898498.6898498 16.63172805.64172805 16.76469520.77469520 16.86513832.87513832 17.4148334.5148334 18.4824309.5824309 18.54958827.55958827
[29] 2.146859650.147859650 2.229978358.230978358 2.86605444.87605444 20.19570642.20570642 22.39592645.40592645 3.41789975.42789975 3.7782962.8782962
[36] 3.85190848.86190848 4.141037599.142037599 4.29959034.30959034 5.128060465.129060465 5.65898794.66898794 5.7513893.8513893 6.56405042.57405042
[43] 7.124946062.125946062 8.18012618.19012618 9.28933416.29933416 9.87628311.88628311
我希望DT$Locale
和DT$Cohort
的每个组合都计算DT$Locus
中每个条目的类型。
在我看来,图书馆data.table
代表了一种有效的方法,所以我尝试过这样的事情:
DT[,sum(unique(Locale)),by="Locus,Cohort"]
,但这会返回一个错误 - 在我看来,使用lapply可能有一种简单的方法可以做到这一点,但我还没有找到正确的语法,有人能提供解决方案吗?
注意:回复帖子:
RALociDT[,list(count=length(unique(Locale3))),by="Locus,Cohort"]
Locus Cohort count
1: 1.110927656.111927656 CEU 14
2: 1.110927656.111927656 Lupus 15
3: 1.110927656.111927656 RA 14
4: 1.110927656.111927656 YRI 13
5: 1.194335780.195335780 CEU 4
---
180: 9.28933416.29933416 YRI 4
181: 9.87628311.88628311 CEU 11
182: 9.87628311.88628311 Lupus 10
183: 9.87628311.88628311 RA 9
184: 9.87628311.88628311 YRI 11
返回列表中显示的项目数,而不是每个项目出现次数的计数(通过轨迹和同类群组)。
答案 0 :(得分:2)
尝试DT[,list(count=length(unique(Locale))),by=c("Locus","Cohort")]
当您想要唯一值向量的sum
时,尝试length
区别设置的唯一值。
答案 1 :(得分:-1)
由于没有明确“每次出现的次数”和“有多少次出现”之间的区别,所以让人感到困惑。我们大多数人听起来都是一样的。也许您只是想将Locale
添加到分组向量中:
DT[, table(Locale, Locus, Cohort)]
这样可以计算每个Locale
- 类型出现在每个具有任何代表性的基因座和群组中的次数。