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