4
给定一个数据帧df
,列为d
,c
,v
。如何查找d
的最大值v
之间的值子集的记录其中c == "foo"
?在数据帧子集中找出列的最大值
我尝试这样做:
df[df$v==max(df$v) & df$c == "foo","d"]
但我得到:
character(0)
给定一个数据帧df
,列为d
,c
,v
。如何查找d
的最大值v
之间的值子集的记录其中c == "foo"
?在数据帧子集中找出列的最大值
我尝试这样做:
df[df$v==max(df$v) & df$c == "foo","d"]
但我得到:
character(0)
呦操作如下:
with(df, d[v== max(v[c=="foo"])])
编辑: 如果你想获得的价值d
适用于所有级别的c
:
library(plyr)
ddply(df, "c", subset, v==max(v))
虽然Manuel的答案将工作的大部分时间,我相信一个更正确的版本是:
with(df, d[v== max(v[c=="foo"]) & c=="foo"])
否则,它可能是匹配的具有v==max
但事实上并非子集的行c=="foo"
。
谢谢。与(df,d [v == max(v [c ==“foo”])])是我正在寻找。 – amh 2012-04-19 17:02:59
对于我而言,我确实希望获得c的所有级别的d的值,但它告诉我R-3.1.2中“尚未支持的长向量”。该文件有点大,寿,所以我解决了另一种方式,但肯定是upvote! – 2015-03-06 00:23:00