R 您可以在多个级别进行过滤吗?
我有一个名为“行为样本”的数据集,它是一个更大的数据集,在每次治疗中,每个受试者都有800个Stim.RT和Stim.ACC值 我想得到每个文本类别的总体平均Stim.RT和平均Stim.Acc。例如,我通常会这样做:R 您可以在多个级别进行过滤吗?,r,dplyr,filtering,R,Dplyr,Filtering,我有一个名为“行为样本”的数据集,它是一个更大的数据集,在每次治疗中,每个受试者都有800个Stim.RT和Stim.ACC值 我想得到每个文本类别的总体平均Stim.RT和平均Stim.Acc。例如,我通常会这样做: Dataset<-Behavioral%>% select(Subject, Session, Stim.ACC, Stim.RT, Text) %>% group_by(Text) %>% summarize(mean.ac = mean(S
Dataset<-Behavioral%>%
select(Subject, Session, Stim.ACC, Stim.RT, Text) %>%
group_by(Text) %>%
summarize(mean.ac = mean(Stim.ACC), mean.RT = mean(Stim.RT))
它会返回这样的结果:
唯一的问题是,在返回第二个表之前,我想过滤掉所有mean.ac值小于.50的主题会话对。
也就是说,如果受试者1在第1课时的平均.ac为.45,我希望删除他们在第1课时的所有值
我试过这个:
Dataset<-Behavioral%>%
select(Subject, Session, Stim.ACC, Stim.RT, Text) %>%
group_by(Subject, Session) %>%
summarize(mean.ac = mean(Stim.ACC), mean.RT = mean(Stim.RT))%>%
group_by(Text)
我得到了这个错误:错误:列文本未知
因此,出现错误的原因是,文本不是group_by函数的一部分,当您在group_by之后进行摘要时,生成的TIBLE中唯一的变量是group_by中的变量以及您在摘要中创建的变量。在你的例子中,结果变量
Dataset<-Behavioral%>%
select(Subject, Session, Stim.ACC, Stim.RT, Text) %>%
group_by(Subject, Session) %>%
summarize(mean.ac = mean(Stim.ACC), mean.RT = mean(Stim.RT))
将成为主题、会话、mean.ac、mean.RT
因此,我根据您的需求过滤了when mean.ac>=0.5,只需要我加入原始数据集的主题和会话,以便包括满足条件的主题和会话。内部连接就像一个连接和过滤器。然后我继续计算了每个文本后内部连接的mean.ac和mean.RT。看起来需要三组
Dataset<-Behavioral%>%
select(Subject, Session, Stim.ACC, Stim.RT, Text) %>%
group_by(Subject, Session, Text) %>%
summarize(mean.ac = mean(Stim.ACC), mean.RT = mean(Stim.RT))%>%
filter(mean >= 0.5) %>%
group_by(Text) %>%
summarize(mean.ac = mean(mean.ac), mean.RT = mean(mean.RT))
下一次,请尝试制作一个,以便我们可以直接处理您的数据。谢谢!我明白这是怎么回事了。我正在尝试运行此操作并得到以下错误:内部连接中的错误br\u dfx,y,by=by,copy=copy,…:缺少参数y,没有默认值,只需重新编辑即可。缺少管道操作员%>%AHhh是的。我应该亲眼看到的!非常感谢!!:
Dataset<-Behavioral%>%
select(Subject, Session, Stim.ACC, Stim.RT, Text) %>%
group_by(Subject, Session, Text) %>%
summarize(mean.ac = mean(Stim.ACC), mean.RT = mean(Stim.RT))%>%
filter(mean >= 0.5) %>%
group_by(Text) %>%
summarize(mean.ac = mean(mean.ac), mean.RT = mean(mean.RT))