按多个条件筛选行

时间:2016-03-29 14:08:13

标签: r

我有:

user_id    log_category    session_num
1 Rob      user            1
2 Fred     progression     2
3 Rob      design          1
4 Mike     user            1
5 Fred     user            2
6 Fred     progression     1

我需要保留包含log_category == user行和(不是)session_num == 1

行的用户的所有行

期望的输出:

user_id    log_category    session_num
1 Rob        user            1
2 Rob        design          1
3 Mike       user            1

1 个答案:

答案 0 :(得分:4)

我们可以提取符合条件的用户,然后使用它来对数据进行子集化。

# Extract users
users <- df$user_id[df$session_num==1 & df$log_category == "user"]

# Subset data
df[df$user_id %in% users,]
#   user_id log_category session_num
#1      Rob         user           1
#2      Rob       design           1
#3     Mike         user           1