如何解决使用自定义统计信息在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参数“数据”丢失,没有默认值 ℹ输入far
为FAR()
。 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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。