获取R中所有列中具有最大值的行
可能重复:获取R中所有列中具有最大值的行,r,dataframe,R,Dataframe,可能重复: 你好, 我有这样一个数据框: A1 A3 d 1 a pr 5 2 a be 0 3 a cd 8 4 a dy 0 5 b pr 3 6 b be 4 7 b cd 9 etc... 我想测试每一行,得到基于A1的唯一行,最大值为d 输出应该是这样的 A1 A3 d a cd 8 b cd 9 等等 数据帧更大,但这只是一个例子 这可以用R完成吗?没有循环和长的东西 谢谢最简单的方法是对d
你好, 我有这样一个数据框:
A1 A3 d
1 a pr 5
2 a be 0
3 a cd 8
4 a dy 0
5 b pr 3
6 b be 4
7 b cd 9
etc...
我想测试每一行,得到基于A1的唯一行,最大值为d
输出应该是这样的
A1 A3 d
a cd 8
b cd 9
等等
数据帧更大,但这只是一个例子
这可以用R完成吗?没有循环和长的东西
谢谢最简单的方法是对
d
列进行排序,然后删除A1
列中的重复项:
df2 <- df[order(df$d,decreasing=T),]
df2[!duplicated(df2$A1),]
df2最简单的方法是对d
列进行排序,并删除A1
列中的重复项:
df2 <- df[order(df$d,decreasing=T),]
df2[!duplicated(df2$A1),]
df2可能
ddply(dfr, "A1", function(curdfr){curdfr[which.max(curdfr$d),]})
大概
ddply(dfr, "A1", function(curdfr){curdfr[which.max(curdfr$d),]})
资料
mydf数据
mydf注意:我没有测试过这个,因为没有提供适当的示例数据(例如:易于测试,不必求助于文本连接等;阅读:dput
)+1,以查看输入时间比创建示例数据时间长的注释!注意:我没有测试过这一点,因为没有提供适当的示例数据(例如:易于测试,无需使用textconnection等;阅读:dput
)+1以查看需要花费很长时间才能键入而不是创建示例数据的注释@Joris Meys:它是重复的,但我不了解使用的整个方法,我能够生成行中具有最大值的所有id,我无法基于此id获得原始数据帧的子集,如何做到这一点?首先,仔细阅读。第二,如果你有ID,但你不知道如何子集(参见“子集”,摘录,…),那么现在是时候开始阅读@Joris Meys了:谢谢你的回复。我知道如何提取它们,但我需要另一种方法。@Joris Meys:这是一种重复的方法,但我不了解使用的整个方法,我能够生成行中具有最大值的所有id,我无法基于此id获得原始数据帧的子集,如何做到这一点?首先,请仔细阅读。第二,如果你有ID,但你不知道如何子集(参见“子集”,摘录,…),那么现在是时候开始阅读@Joris Meys了:谢谢你的回复。我知道如何提取它们,但我需要另一种方法。非常感谢,它有效:),但我认为每列中有超过1个最大值,但我只需要1。非常感谢,它有效:),但我认为每列中有超过1个最大值,但我只需要1。