按多种条件过滤行

Sma*_*ell 0 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
Run Code Online (Sandbox Code Playgroud)

我需要保留来自用户的所有行,并且具有log_category == userand(非或)session_num == 1

所需的输出:

user_id    log_category    session_num
1 Rob        user            1
2 Rob        design          1
3 Mike       user            1
Run Code Online (Sandbox Code Playgroud)

mto*_*oto 5

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

# 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
Run Code Online (Sandbox Code Playgroud)