如何解决数据表 R:合并来自多个 data.table 的选定列
我有数百个数据表,例如下面给出的示例,它们的行和列完全相同。我想将(不是通过 rbindlist)从所有数据表中选择的列(例如 ID、fdr 和 LogFC)合并到一个合并的 data.table 中。
ID P fdr LogFC animals
1: A 1.568780e-01 2.5e-01 0.3348365 dog
2: B 4.960651e-05 2.6e-04 0.5768812 dog
3: C 3.123122e-01 4.2e-01 0.1872491 dog
4: D 8.583002e-07 8.3e-06 0.8387016 dog
5: E 2.776600e-03 8.4e-03 0.6495237 dog
6: F 3.925375e-06 3.3e-05 1.2510581 cat
7: G 4.248726e-07 4.7e-06 1.4029001 cat
8: H 1.497479e-03 4.8e-03 0.7471876 cat
9: I 3.335468e-07 4.0e-06 1.2297170 cat
10: J 5.889612e-04 2.2e-03 1.0751952 cat
我尝试使用以下(来自 https://stackoverflow.com/posts/39561045/revisions;)
DT.comb<-Reduce(function(...) merge.data.table (...,by="ID",all = TRUE),dt.list,allow.cartesian=T)
但我不确定如何将列选择传递给merge.data.table。虽然我可以通过使用 rbindlist
来实现这一点,删除不需要的列(例如 P 和动物),然后 dcast 表将其转换为宽格式,但如果我可以使用 merge.data.table
,我会很棒,或者如果可能,其他方法。我非常感谢您对此的任何意见。
解决方法
只需将 by = "ID"
更改为 by = c("ID","FDR","logFC")
,参数 allow.cartesian
应位于 merge
内
DT.comb <- Reduce(function(...) merge.data.table(...,by= c("ID","LogFC"),all = TRUE,allow.cartesian=TRUE),dt.list)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。