R:如何转置和合并表

  • 本文关键字:合并 转置 何转置 r
  • 更新时间 :
  • 英文 :


我有三列的表格。第一列包含示例名称、第二个数字和第三个 ID。下面是一个示例:

Samples Count   ID
S1      99057   Lactobacillales
S1      608     Enterobacterales
S1      507     Choanoflagellida
S1      495     Burkholderiales
S1      456     Pseudomonadales
S1      398     Nostocales
S1      286     Suessiales
S2      3742    Lactobacillales
S2      631     Pseudomonadales
S2      276     Micrococcales
S2      261     Burkholderiales
S2      244     Choanoflagellida
S2      239     Rhizobiales
S2      239     Enterobacterales

我需要转置并合并表,以便第一列包含样本 S1 中每个 ID 的数字,第三列包含样本 S2 中每个 ID 的数字。例:

ID                  S1      S2
Lactobacillales     3742    99057
Enterobacterales    239     608
Choanoflagellida    244     507
Burkholderiales     261     495
Pseudomonadales     631     456
Nostocales          0       398
Suessiales          0       286
Micrococcales       276     0
Rhizobiales         239     0

到目前为止,我在Excel中执行此操作,但是对于较大的表,这是不可行的。如何在 R 中做到这一点?任何帮助非常感谢。

您可以使用reshape2包中的dcast函数-

> reshape2::dcast(dt,ID~Samples,value.var = "Count",fill=0)
                ID    S1   S2
1  Burkholderiales   495  261
2 Choanoflagellida   507  244
3 Enterobacterales   608  239
4  Lactobacillales 99057 3742
5    Micrococcales     0  276
6       Nostocales   398    0
7  Pseudomonadales   456  631
8      Rhizobiales     0  239
9       Suessiales   286    0

注意 - 如果数据大于data.table包中的dcast.data.table

最新更新