我有一个记录表,如下所示
ab cd ef 10
ac bd fg 20
abc cde efg 10
ab cd ef 20
在上表中,第一行和第四行的前三列完全相同。我需要将这两行组合在一起,得到
ab cd ef 30
在 R 中实现此目标的正确方法应该是什么?迭代每一行和每一列都可以完成这项工作,但它太慢了。我认为我们需要将前三列散列在一起,但我不知道如何在 R 中做到这一点。
最佳答案
您可以尝试使用 dplyr
包进行以下操作
数据
df <- read.table(header= FALSE, text = "
ab cd ef 10
ac bd fg 20
abc cde efg 10
ab cd ef 20")
代码
library(dplyr)
group_by(df, V1, V2, V3) %>%
mutate(SUM = sum(V4)) %>%
distinct()
## Source: local data frame [3 x 5]
## Groups: V1, V2, V3
##
## V1 V2 V3 V4 SUM
## 1 ab cd ef 10 30
## 2 ac bd fg 20 20
## 3 abc cde efg 10 10
关于r - 使用散列或其他方法评估与 R 中组合列相关的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29452457/