使用自定义统计信息在R中使用摘要功能时出错

问题描述

我正在尝试为数据中的每个组计算一些称为FAR的统计信息。我写了一个用于计算统计量的函数,它看起来像这样:

FAR <- function(data){
  FAs = sum(data$response %in% c(0,1) & data$correct_response=="No")
  NF = sum(data$correct_response=="No")
  return(FAs/NF)
}

我的数据框称为Subjects_no_imagery,并且我希望将其分组为random_participant_ID。然后,我想计算每个组的FAR,如下所示:

subjects_no_imagery %>% group_by(random_participant_ID) %>% dplyr::summarize(far = FAR())

我一直收到以下错误:

subjects_no_imagery%>%group_by(random_participant_ID)%>%dplyr :: summarize(far = FAR()) 错误:summarise()输入far有问题。 x参数“数据”丢失,没有默认值 ℹ输入farFAR()。 in错误发生在组1中:random_participant_ID =“ 2X2DPZG20H”。 运行rlang::last_error()以查看错误发生的位置。

如果我将数据框作为参数传递:

subjects_no_imagery %>% group_by(random_participant_ID) %>% dplyr::summarize(FAR = FAR(subjects_no_imagery))

然后它运行没有错误,但是我得到以下输出:所有FAR都相同(并且等于所有参与者的平均值),而不是每个参与者都有不同的RAF:

random_participant_ID   FAR
   <chr>                 <dbl>
 1 2X2DPZG20H            0.196
 2 4GF789C0F0            0.196
 3 93JKYDEZVY            0.196
 4 9J9QM4C7LV            0.196

命令

subjects_no_imagery %>% group_by(random_participant_ID) %>% dplyr::summarize(FAR = FAR(subjects_no_imagery %>% group_by(random_participant_ID)))

也会产生相同的结果。

有什么想法可以获取每个组的FAR统计信息吗?

谢谢。

解决方法

问题在于FAR函数需要一个数据集,并且汇总仅适用于仅使用列的函数。

相反,我应该执行以下操作:

subjects_no_imagery_stats <- subjects_no_imagery %>% group_by(random_participant_ID) %>% 
  summarize(FAs = sum(response %in% c(0,1) & correct_response=="No"),NF = sum(correct_response=="No"),FA_rate = FAs/NF)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...