当R中的某些列中的值匹配时筛选行
我想过滤数据帧,使其仅包括在某些列中具有匹配值的行 我的数据:当R中的某些列中的值匹配时筛选行,r,R,我想过滤数据帧,使其仅包括在某些列中具有匹配值的行 我的数据: df <- data.frame("Date" = ymd(c("2005-01-01", "2005-01-02", "2005-01-02", "2005-01-01", "2005-01-01")), "Person" = c("John", "John", "John", "Maria", "Maria"), "Job" = c("OR", "ER",
df <- data.frame("Date" = ymd(c("2005-01-01", "2005-01-02", "2005-01-02", "2005-01-01", "2005-01-01")),
"Person" = c("John", "John", "John", "Maria", "Maria"),
"Job" = c("OR", "ER", "Heart", "Liver", "CV"),
"Type" = c("Day", "Night", "Night", "Day", "Night"))
df我们可以从dplyr
中使用groupby
和filter
:
library(dplyr)
df %>%
group_by(Date, Person, Type) %>%
filter(n() > 1)
输出:
# A tibble: 2 x 4
# Groups: Date, Person, Type [1]
Date Person Job Type
<date> <fct> <fct> <fct>
1 2005-01-02 John ER Night
2 2005-01-02 John Heart Night
#一个tible:2 x 4
#组:日期、人员、类型[1]
日期人员工作类型
1 2005-01-02约翰·艾尔之夜
2 2005-01-02约翰心脏之夜
当“日期”、“人员”和“类型”都是彼此重复的时候,不清楚filterFilter的逻辑条件trydf[duplicated(df[c(“日期”、“人员”、“类型”)))))| duplicated(df[c(“日期”、“人员”、“类型”)],fromLast=TRUE),]
# A tibble: 2 x 4
# Groups: Date, Person, Type [1]
Date Person Job Type
<date> <fct> <fct> <fct>
1 2005-01-02 John ER Night
2 2005-01-02 John Heart Night