【发布时间】:2021-08-13 10:44:34
【问题描述】:
我正在努力使以下代码正常工作。 我拥有的数据是物理测试的data.frame。参加测试的运动员根据“运动特定”参数进行分类。
wingate_benchmarks <- wingate_data %>%
select(`Sport Specific`,`Minimum power output`,`Average power output`,
`Relative Average Power`,`Peak Power`,`Time to peak`,`Max. RPM`,`Time to Max. RPM`,`Total Work`) %>%
group_by(`Sport Specific`) %>%
dplyr::summarize_at(vars(`Minimum power output`,`Average power output`,
`Relative Average Power`,`Peak Power`,`Time to peak`,`Max. RPM`,`Time to Max. RPM`,`Total Work`),
list(mean = mean, sd = sqrt((n()-1)/n())*sd))
如果我只使用 sd,它会像数据是样本一样计算标准偏差,但它应该被视为完整的人口。因此添加了sqrt((n()-1)/n())。
但 R 不断返回:错误:n() 只能在 dplyr 动词中使用。
有没有办法解决这个问题?谢谢!
【问题讨论】:
-
如果你做的不仅仅是提供函数的名称,你需要提供一个“purr-style lambda”。像
se = ~sd(.)*sqrt((n()-1)/n()))这样的东西。此外,summarise_at已被across()取代。请注意如何在 lambda 中引用基本函数sd。 -
如果您创建一个小的可重现示例以及预期的输出,这将更容易提供帮助。阅读how to give a reproducible example。
标签: r standards population deviation