Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 您可以在多个级别进行过滤吗?_R_Dplyr_Filtering - Fatal编程技术网

R 您可以在多个级别进行过滤吗?

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

我有一个名为“行为样本”的数据集,它是一个更大的数据集,在每次治疗中,每个受试者都有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(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))