R 按唯一id压缩数据集
我想合并具有重复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 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")