R 按单列和多因素筛选数据集
这可能是一个简单的问题,但我找了很长时间的问答,并阅读了所有我能找到的备忘单,仍然找不到解决办法 假设我有以下数据集R 按单列和多因素筛选数据集,r,filter,dplyr,R,Filter,Dplyr,这可能是一个简单的问题,但我找了很长时间的问答,并阅读了所有我能找到的备忘单,仍然找不到解决办法 假设我有以下数据集 participant <- c(1, 1, 2, 2, 3,3 ,4,4) trial <- c(1, 2, 2, 3, 4, 2, 3, 4) page <- c(1, 2, 2, 5, 6, 2, 1, 2) test <- data.frame(participant, trial, page) participantdplyr::filte
participant <- c(1, 1, 2, 2, 3,3 ,4,4)
trial <- c(1, 2, 2, 3, 4, 2, 3, 4)
page <- c(1, 2, 2, 5, 6, 2, 1, 2)
test <- data.frame(participant, trial, page)
participantdplyr::filter
仅保留所提供条件为true的行。您的想法是正确的,一种简单的方法是生成一个与要删除的行匹配的条件语句,然后将其反转以选择其他行。问题在于如何将==
转换为=代码>与AND操作员交互&
您给出了条件参与者!=“1”和试用版!=“2”&页!=“2”
仅当以下所有条件均为真时才为真(因为您使用了&
):
- 参与者不是1
- 审判不是2
- 页面不是2
因此,如果一行不符合这些标准中的任何一个(例如,participant==1的每一行),它将被删除
因为您要做的是生成一个与要删除的行相匹配的条件语句,然后使用NOT运算符将其反转代码>围绕括号中的整个语句:
dplyr::filter(test, !(participant == 1 & trial == 2 & page == 2))
participant trial page
1 1 1 1
2 2 2 2
3 2 3 5
4 3 4 6
5 3 2 2
6 4 3 1
7 4 4 2
请记住,我不想用更少的列或RAW创建新的更小的数据集,因为我的数据集庞大且非常复杂,需要完整。更具体地说,我需要删除参与者1的试用版2的第2页
dplyr::filter(test, !(participant == 1 & trial == 2 & page == 2))
participant trial page
1 1 1 1
2 2 2 2
3 2 3 5
4 3 4 6
5 3 2 2
6 4 3 1
7 4 4 2