加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

R中的聚合函数同时使用两列

发布时间:2020-12-14 04:48:06 所属栏目:百科 来源:网络整理
导读:数据:- df=data.frame(Name=c("John","John","Stacy","Kat","Kat"),Year=c(2016,2015,2014,2016,2006,2006),Balance=c(100,150,65,75,10)) Name Year Balance1 John 2016 1002 John 2015 1503 Stacy 2014 654 Stacy 2016 755 Kat 2006 1506 Kat 2006 10 码
数据:-

df=data.frame(Name=c("John","John","Stacy","Kat","Kat"),Year=c(2016,2015,2014,2016,2006,2006),Balance=c(100,150,65,75,10))

   Name Year Balance
1  John 2016     100
2  John 2015     150
3 Stacy 2014      65
4 Stacy 2016      75
5   Kat 2006     150
6   Kat 2006      10

码:-

aggregate(cbind(Year,Balance)~Name,data=df,FUN=max )

输出: –

Name Year Balance
1  John 2016     150
2   Kat 2006     150
3 Stacy 2016      75

我想使用Year和Balance这两个列来汇总/汇总上面的数据框.我使用基函数聚合来做到这一点.我需要最近一年/最近一年的最大余额.在输出的第一行,约翰有最新的一年(2016),但是(2015)的余额,这不是我需要的,它应该输出100而不是150.我在哪里错了?

解决方法

具有讽刺意味的是,聚合是一种糟糕的聚合工具.你可以让它工作,但我会这样做:

library(data.table)

setDT(df)[order(-Year,-Balance),.SD[1],by = Name]
#    Name Year Balance
#1:  John 2016     100
#2: Stacy 2016      75
#3:   Kat 2006     150

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读