具有多组条件的 filter()
filter() with multiple sets of conditions
我正在尝试 filter/subset 根据观察结果是否满足一组标准。 IE。应过滤 var1=2 和 var2=2 的观察值,但应排除 var1=1 和 var2=3 的观察值。因此,如果它们符合任何 1 行标准,则应包括观察结果。
当我 运行 对我的数据进行交叉制表时,结果显示有一些不应过滤的观察结果。
table (df$var1, df$var2)
1 2 3
1 3 5 3
2 4 5 4
3 8 16 12
4 12 15 16
5 79 83 99
然而,当我运行我的代码(如下)时,观察的数量并没有在它应该有的时候改变。
clean <- df %>% filter(
(var1 == 1 & var2 ==1) |
(var1 == 2 & var2 == 1 | 2 ) | # var1=2 and var2=1 OK, var1=2 and var2=2 also OK
(var1 == 3 & var2 == 2) |
(var1 == 4 & var2 == 2 | 3) |
(var1 == 5 & var2 == 3)
)
nrow(clean)
364
试试这是否有效:
clean <- df %>% filter(
(var1 == 1 & var2 == 1) |
(var1 == 2 & var2 == 1 | var2 == 2 ) |
(var1 == 3 & var2 == 2) |
(var1 == 4 & var2 == 2 | var1 == 3) |
(var1 == 5 & var2 == 3)
)
我正在尝试 filter/subset 根据观察结果是否满足一组标准。 IE。应过滤 var1=2 和 var2=2 的观察值,但应排除 var1=1 和 var2=3 的观察值。因此,如果它们符合任何 1 行标准,则应包括观察结果。
当我 运行 对我的数据进行交叉制表时,结果显示有一些不应过滤的观察结果。
table (df$var1, df$var2)
1 2 3
1 3 5 3
2 4 5 4
3 8 16 12
4 12 15 16
5 79 83 99
然而,当我运行我的代码(如下)时,观察的数量并没有在它应该有的时候改变。
clean <- df %>% filter(
(var1 == 1 & var2 ==1) |
(var1 == 2 & var2 == 1 | 2 ) | # var1=2 and var2=1 OK, var1=2 and var2=2 also OK
(var1 == 3 & var2 == 2) |
(var1 == 4 & var2 == 2 | 3) |
(var1 == 5 & var2 == 3)
)
nrow(clean)
364
试试这是否有效:
clean <- df %>% filter(
(var1 == 1 & var2 == 1) |
(var1 == 2 & var2 == 1 | var2 == 2 ) |
(var1 == 3 & var2 == 2) |
(var1 == 4 & var2 == 2 | var1 == 3) |
(var1 == 5 & var2 == 3)
)