在给定列上聚合数据帧,并显示另一列
发布时间:2020-12-14 01:08:49 所属栏目:百科 来源:网络整理
导读:我有一个数据帧在R中的形式如下: head(data) Group Score Info1 1 1 a2 1 2 b3 1 3 c4 2 4 d5 2 3 e6 2 1 f 我想使用max函数在Score列后进行聚合 aggregate(data$Score,list(data$Group),max) Group.1 x1 1 32 2 4 但我也想显示与每个组的Score列的最大值相
我有一个数据帧在R中的形式如下:
> head(data) Group Score Info 1 1 1 a 2 1 2 b 3 1 3 c 4 2 4 d 5 2 3 e 6 2 1 f 我想使用max函数在Score列后进行聚合 > aggregate(data$Score,list(data$Group),max) Group.1 x 1 1 3 2 2 4 但我也想显示与每个组的Score列的最大值相关联的信息列。我不知道如何做到这一点。我想要的输出将是: Group.1 x y 1 1 3 c 2 2 4 d 任何提示?
首先,使用split拆分数据:
split(z,z$Group) 然后,对于每个块,选择具有最大分数的行: lapply(split(z,z$Group),function(chunk) chunk[which.max(chunk$Score),]) 最后还原回一个data.frame do.calling rbind: do.call(rbind,lapply(split(z,])) 结果: Group Score Info 1 1 3 c 2 2 4 d 一行,没有魔法,快,结果有好的名字=) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |