我有一個數據框,如下所示。它只是一個例子。真實的數據集要大得多。根據同一數據框中不同列的最大值/最小排序值對數據幀中的列進行篩選
Hospital State Mortality Rank
aaa AK 9.7 1
bbb AK 10.5 2
ccc AK 11.3 3
ddd AK 11.5 4
eee AL 8.7 1
ggg AL 9.1 2
hhh AL 9.3 3
mmm AR 9.9 1
nnn AR 10.2 2
ooo AR 10.4 3
ppp AZ 7.5 1
qqq AZ 8.7 2
爲了可重複使用的目的獲取上述數據幀的代碼如下。
df <- data.frame(Hospital=c("aaa","bbb","ccc","ddd","eee","ggg","hhh","mmm","nnn","ooo","ppp","qqq"),State=c("AK","AK","AK","AK","AL","AL","AL","AR","AR","AR","AZ","AZ"), Mortality=c(9.7,10.5,11.3,11.5,8.7,9.1,9.3,9.9,10.2,10.4,7.5,8.7),Rank=c(1,2,3,4,1,2,3,1,2,3,1,2))
當我通過所謂最壞的說法,我想從具有最低排名數據幀抽取醫院和狀態欄。
預期的輸出應該是這樣的
Hospital State
ddd AK
hhh AL
ooo AR
qqq AZ
即使我能得到如下結果一個,我可以使用dplyer的選擇功能,並得到上述預期的結果。
Hospital State Mortality Rank
ddd AK 11.5 4
hhh AL 9.3 3
ooo AR 10.4 3
qqq AZ 8.7 2
我利用下面的代碼來得到每個組中排名最低的值的列表。對象最差1列出了每個組的最低排名值。
worst<-df %>% group_by(State) %>% summarise(max = max(Rank))
worst1 <- as.vector(worst[,2, drop=FALSE])
想知道如果我可以使用它來提取我的期望輸出或是否有更簡單的方法,直接獲得所需的輸出。
我試過使用這個df[df$Rank %in% worst1,]
但我dint得到任何結果。任何形式的幫助都會非常有用。在此先感謝
非常感謝。它的工作就像我想要的 –