【问题标题】:How to add duplicate rows, but add values in one column in R如何添加重复的行,但在 R 的一列中添加值
【发布时间】:2020-03-13 09:38:16
【问题描述】:

这就是我正在处理的数据框。 如您所见,存在具有完全相同值的重复行。 我想知道如何将这些行合并为一行。但是,还有一个条件。在最右边的列(不在图片中),有一列称为“金额”,其中包括客户在每次购买中花费的金额。我想合并重复的行,但在每一行中添加金额值。

joined <- inner_join(customers, payments, by = 'customerNumber')

【问题讨论】:

  • aggregate(amount ~ customerNumber, joined, sum) ?

标签: r database dataframe data-manipulation data-cleaning


【解决方案1】:

你可以这样做(我无法在你的数据上尝试它,因为你只提供了一张图片但它应该可以工作):

library(dplyr)
joined %>% group_by_at(vars(-amount)) %>% # group by all columns except amount
           summarise(amount=sum(amount)) # get sum of amount by group

【讨论】:

  • UseMethod("tbl_vars") 中的错误:我在尝试时遇到此错误。
  • 嗯,你能在 R 中试试这个,看看它是否来自你的数据框? mtcars %&gt;% group_by_at(vars(-mpg)) %&gt;% summarise(mpg=sum(mpg))
  • 还有class(joined)的结果是什么?
  • joined 是数据框,mtcars 行显示了一些结果,但我不知道它们是什么......
  • 实际上我发现问题在于我有一些列,而不是具有不同列的数量。删除这些列后,您的代码有效,我得到了结果。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多