R 按唯一id压缩数据集

R 按唯一id压缩数据集,r,row,unique,R,Row,Unique,我想合并具有重复ID的行。这些列是二进制文件,所以我想将它们相加 之前的示例: id nam1 nam2 1 1 1 1 0 0 2 1 0 2 0 1 3 1 1 3 1 0 示例如下: id nam1 nam2 1 1 1 2 1

我想合并具有重复ID的行。这些列是二进制文件,所以我想将它们相加

之前的示例:

 id      nam1      nam2
  1      1         1
  1      0         0
  2      1         0
  2      0         1
  3      1         1
  3      1         0
示例如下:

id      nam1      nam2
 1      1         1
 2      1         1
 3      2         1
有什么办法吗

#示例数据:
#Sample data:
df <- data.frame(id=c(1,1,2,2,3,3),
                 nam1=c(1,0,1,0,1,1), 
                 nam2=c(1,0,0,1,1,0))

library(data.table)
setDT(df)[, lapply(.SD, sum), by=.(id)]

id nam1 nam2
1    1    1
2    1    1
3    2    1

df@d.b在评论中的回答:

aggregate(.~id, df, sum)
或使用dplyr

library(dplyr)

df %>%
  group_by(id) %>%
  summarize_all("sum")
结果:

# A tibble: 3 x 3
     id  nam1  nam2
  <int> <int> <int>
1     1     1     1
2     2     1     1
3     3     2     1
聚合(.~id,df,sum)
可能
df = structure(list(id = c(1L, 1L, 2L, 2L, 3L, 3L), nam1 = c(1L, 0L, 
1L, 0L, 1L, 1L), nam2 = c(1L, 0L, 0L, 1L, 1L, 0L)), .Names = c("id", 
"nam1", "nam2"), row.names = c(NA, -6L), class = "data.frame")