【问题标题】:Sum certain variables and delete duplicates after对某些变量求和并在之后删除重复项
【发布时间】:2016-05-02 04:52:43
【问题描述】:

我有一个 data.frame,它由 33 个变量和 254 万个观测值组成。我创建了一个简单的 data.frame 来解释我的问题。

testdf
     borrower amount income
1        a   4000  30000
2        b   5000  20000
3        a   3000  30000

str(testdf)
'data.frame':   3 obs. of  3 variables:
 $ borrower: Factor w/ 2 levels "a","b": 1 2 1
 $ amount  : num  4000 20000 3000
 $ income  : num  30000 20000 30000

如果变量borrower 相同,我想要的是对变量amount 求和。但是对于变量income 不能这样做。在此之后,必须删除重复项。所以在这种情况下,必须删除第 3 行。新的 df 必须如下所示:

testdf
     borrower  amount  income
     a          7000    30000
     b          5000    20000

变量borrower(例如a)中的值也可能出现8次。在这件事上,我想总结 8 个amountss,但又不是income。并用 a 删除 7 行。

【问题讨论】:

  • income 对于 8 行中的 borrower 是否保持不变?如果不是,您如何在结果数据集中选择 income 的值?

标签: r sum aggregate


【解决方案1】:

这是plyr的解决方案:

testdf <- data.frame(borrower = c("a", "b", "a"),
                     amount = c(4000, 5000, 3000),
                     income = c(30000, 20000, 30000))


library(plyr)
ddply(testdf, .(borrower), summarise, amount = sum(amount), income = income[1])

#   borrower amount income
# 1        a   7000  30000
# 2        b   5000  20000

【讨论】:

  • 谢谢,太好了。 :)
猜你喜欢
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2021-04-04
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多