Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 对某些变量求和,然后删除重复项_R_Sum_Aggregate - Fatal编程技术网

R 对某些变量求和,然后删除重复项

R 对某些变量求和,然后删除重复项,r,sum,aggregate,R,Sum,Aggregate,我有一个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/

我有一个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
我想要的是,如果变量
借款人
相同,则对变量
金额
求和。但是,对于变量
收入
,不能这样做。在此之后,必须删除副本。因此,在这种情况下,必须删除第3行。新df必须如下所示:

testdf
     borrower  amount  income
     a          7000    30000
     b          5000    20000

变量
借款人
(例如a)中的值也可能出现8次。在这件事上,我想合计8个
金额
s,但再次强调,不是
收入
。并用a删除7行。

这是一个使用
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

testdf
income
对于
借款人
在8行中是否保持不变?如果没有,您如何在结果数据集中为
收入
选择值?谢谢,这很好。:)