首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于多列的折叠data.table

基于多列的折叠data.table
EN

Stack Overflow用户
提问于 2016-09-14 16:23:47
回答 2查看 1.5K关注 0票数 2

我有一个非常大的data.table,有4列,其中只有一列是完全独一无二的。很难解释,但看起来是这样的:

代码语言:javascript
复制
          ENSEMBL ENTREZID SYMBOL   ALIAS
1 ENSG00000000003     7105 TSPAN6    T245
2 ENSG00000000003     7105 TSPAN6  TM4SF6
3 ENSG00000000003     7105 TSPAN6 TSPAN-6
4 ENSG00000000003     7105 TSPAN6  TSPAN6
5 ENSG00000000005    64102   TNMD  BRICD4
6 ENSG00000000005    64102   TNMD   CHM1L

我试图根据前3列折叠它,并使ALIAS列成为折叠值的列表。

我知道我可以做results <- setDT(df)[, list(ALIAS=paste(ALIAS, collapse = '|')) , ENSEMBL],但后来我失去了中间的两所学校。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-14 16:43:37

你们关系很好。试一试

代码语言:javascript
复制
DT[, paste0(ALIAS, collapse="|"), by=c("ENSEMBL", "ENTREZID", "SYMBOL")]

根据你提供的数据,这给了我

代码语言:javascript
复制
           ENSEMBL ENTREZID SYMBOL                         V1
1: ENSG00000000003     7105 TSPAN6 T245|TM4SF6|TSPAN-6|TSPAN6
2: ENSG00000000005    64102   TNMD               BRICD4|CHM1L
票数 2
EN

Stack Overflow用户

发布于 2016-09-14 16:31:31

在本例中,将希望保留的所有列添加到by部分。

代码语言:javascript
复制
results <- setDT(df)[, 
                     list(ALIAS=paste(ALIAS, collapse = '|')), 
                     list(ENSEMBL, ENTREZID, SYMBOL)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39495366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档