当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的逻辑条件try
df[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