gpt4 book ai didi

r - 错误 : `n()` must only be used inside dplyr verbs

转载 作者:行者123 更新时间:2023-12-03 23:59:30 24 4
gpt4 key购买 nike

运行 R 4.0.2 和 dplyr 1.0.2
我正在尝试使用 n = n()在对 srvyr 对象的总结调用中:

relduration_by_age_grp <- l %>% 
filter(ongoing == 0 & ptype == i) %>%
select(ego.id, ptype, age.grp, ego.age.grp, duration, ego.wawt) %>%
mutate(min.age.grp = ifelse(age.grp < ego.age.grp,
age.grp,
ego.age.grp)) %>%
srvyr::as_survey(ids=1, weights=ego.wawt) %>%
group_by(ptype, min.age.grp) %>%
summarize(n = n(),
wtd.median = srvyr::survey_median(duration, na.rm=TRUE),
wtd.mean = srvyr::survey_mean(duration, na.rm=TRUE),
median = srvyr::unweighted(median(duration, na.rm=TRUE)),
mean = srvyr::unweighted(mean(duration, na.rm=TRUE)))
基于其他问题/答案,我也尝试使用 dplyr::summarize(n = dplyr::n(),但这会导致相同的错误。问题是无法在 srvyr 对象上使用 dplyr n() 吗? srvyr 中似乎没有可用于汇总调用的类似函数。
谢谢!

最佳答案

据我所知,不像 dplyr (它几乎接受任何返回标量的汇总函数,以及它自己的专用函数,例如 n() ),srvyr::summarize为您提供有限的功能选择:来自 ?srvyr::summarize ,

Summarise for ‘tbl_svy’ objects accepts several specializedfunctions. [emphasis added]


即, survey_mean , survey_total , survey_ratio ,和其他几个
这是一个似乎有效的技巧:计算反向权重的总和( survey_total )。
library(srvyr)
data(api, package="survey")
aa <- (apistrat
%>% as_survey_design(strata=stype, weights=pw)
%>% group_by(stype)
)
aa %>% summarize(n=survey_total(1/pw))
这匹配 table(apistrat$stype)

关于r - 错误 : `n()` must only be used inside dplyr verbs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63607693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com