樣本資料:
df <- data.frame(
dr=c('john', 'jill', 'jill', 'john'),
service=c('PT','SN','SN','PT'),
Hours=c(6,5,4,8)
)
我嘗試過濾它以獲得如下輸出,其中顯示的值大于 4 forSN和大于 6 for PT。
輸出應該是
Dr. Service. Hours
Jill. SN. 5
John. PT. 8
我有 2000 行這樣的過濾,但不確定如何去做。
uj5u.com熱心網友回復:
您可以按如下方式指定條件:
library(dplyr)
df <- data.frame(
dr=c('john', 'jill', 'jill', 'john'),
service=c('PT','SN','SN','PT'),
Hours=c(6,5,4,8)
)
df %>%
filter(
(service == 'SN' & Hours > 4) |
(service == 'PT' & Hours > 6)
)
uj5u.com熱心網友回復:
在基礎 R 中,您可以嘗試使用subset:
subset(
df,
service == "SN" & Hours > 4 | service == "PT" & Hours > 6
)
或將評估放在括號中以提取滿足條件的行:
df[(df$service == "SN" & df$Hours > 4) | (df$service == "PT" & df$Hours > 6),]
輸出
dr service Hours
2 jill SN 5
4 john PT 8
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/333577.html
