Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.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_Dataframe - Fatal编程技术网

获取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。