【发布时间】:2020-09-10 16:54:17
【问题描述】:
我正在尝试为我的数据中的每个组计算一些称为 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()。 ℹ 第1组出现错误:random_participant_ID = "2X2DPZG20H"。 运行rlang::last_error()看看哪里出错了。
如果我将数据框作为参数传递:
subjects_no_imagery %>% group_by(random_participant_ID) %>% dplyr::summarize(FAR = FAR(subjects_no_imagery))
然后它运行没有错误,但我得到了这个输出,而不是每个参与者都有不同的 RAF,所有 FAR 都是相同的(并且等于所有参与者的平均值):
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 统计数据?
【问题讨论】:
标签: r dplyr group-by summarize