【问题标题】:Summarise data by removing duplicates [duplicate]通过删除重复来汇总数据 [重复]
【发布时间】:2015-07-28 11:48:04
【问题描述】:

我有一个带有值的数据框:

x y value 
A B 10  
B A 15  
A C 5  
C A 10  
B C 20

df <- data.frame(x = c("A", "B", "A", "C", "B"),
                 y = c("A", "A", "C", "A", "C"),
                 value = c(10, 15, 5, 10, 20))

我想将这些数据汇总到 xy 的每个组合,并得到每个组合的值的总和。结果是:

x y value
A B 25  
A C 15  
B C 20

我发现这个question 和我的问题差不多。但解决方案在我的情况下不起作用。这是因为 xy 中的值是字符串,min()max() 不起作用。

任何想法如何做到这一点?

【问题讨论】:

  • 提供的数据集和可重现的代码不同

标签: r


【解决方案1】:

一个选项是sort前两列中的行并替换它,使用aggregate通过组'x'和'y'获取'value'的sum

df[1:2] <- t(apply(df[1:2], 1, sort))
aggregate(value~., df, sum)
#  x y value
# 1 A B    25
# 2 A C    15
# 3 B C    20

【讨论】:

  • 正在编写完全相同的内容,但无法获得所需的输出。显然 OP 显示并给出了不同的数据集。虽然这似乎是一个骗局
  • @DavidArenburg 我遇到了同样的问题,但后来我复制了显示的数据并得到了正确的答案。可能是他打错字了。当然,它看起来像个骗子。
  • 好的,再次搜索你的答案被骗了
猜你喜欢
  • 1970-01-01
  • 2017-12-09
  • 2022-10-24
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-03
相关资源
最近更新 更多