使用 dplyr 和调查对数据进行分组时出错
Error when grouping data with dplyr and survey
我使用 R-packages survey 和 srvyr 结合 dplyr 来分析调查数据。但是,当我尝试计算组的置信区间时(参见下面的代码),我得到错误 'group_by_drop_default' is not an exported object from 'namespace:dplyr'
感谢您就此错误提供任何帮助或在一般调查框架中计算组的置信区间。
as_survey_design(strata = strata, weight = weight_pers, id= hh_id, nest=TRUE)
out <- strat_design %>%
group_by(sex, year) %>%
summarize( var_mean= survey_mean(var1, vartype = "ci"),
n = unweighted(n()))```
您的命令有一些错误。我没有你的数据,所以我将使用调查包中的 apistrat 数据集作为示例。您可以使用它相应地修改您自己的命令。
library(survey)
library(srvyr)
data(api)
out <- apistrat %>%
as_survey_design(strata = stype, weights = pw) %>%
group_by(awards) %>%
summarize( var_mean = survey_mean(api00, vartype = "ci"),
n = unweighted(n()) )
out
# A tibble: 2 x 5
awards var_mean var_mean_low var_mean_upp n
<fct> <dbl> <dbl> <dbl> <int>
1 No 634. 603. 664. 87
2 Yes 678. 655. 702. 113
很遗憾,您的 dplyr 和 srvyr 版本之间似乎不兼容。
dplyr在0.8.1中引入了该功能,srvyr在0.3.6版本开始依赖它。
最简单的解决方案是用 install.packages("dplyr")
更新 dplyr,但如果无法更新,则可以尝试安装旧版本的 srvyr (Whosebug post on how that would work)
我使用 R-packages survey 和 srvyr 结合 dplyr 来分析调查数据。但是,当我尝试计算组的置信区间时(参见下面的代码),我得到错误 'group_by_drop_default' is not an exported object from 'namespace:dplyr'
感谢您就此错误提供任何帮助或在一般调查框架中计算组的置信区间。
as_survey_design(strata = strata, weight = weight_pers, id= hh_id, nest=TRUE)
out <- strat_design %>%
group_by(sex, year) %>%
summarize( var_mean= survey_mean(var1, vartype = "ci"),
n = unweighted(n()))```
您的命令有一些错误。我没有你的数据,所以我将使用调查包中的 apistrat 数据集作为示例。您可以使用它相应地修改您自己的命令。
library(survey)
library(srvyr)
data(api)
out <- apistrat %>%
as_survey_design(strata = stype, weights = pw) %>%
group_by(awards) %>%
summarize( var_mean = survey_mean(api00, vartype = "ci"),
n = unweighted(n()) )
out
# A tibble: 2 x 5
awards var_mean var_mean_low var_mean_upp n
<fct> <dbl> <dbl> <dbl> <int>
1 No 634. 603. 664. 87
2 Yes 678. 655. 702. 113
很遗憾,您的 dplyr 和 srvyr 版本之间似乎不兼容。
dplyr在0.8.1中引入了该功能,srvyr在0.3.6版本开始依赖它。
最简单的解决方案是用 install.packages("dplyr")
更新 dplyr,但如果无法更新,则可以尝试安装旧版本的 srvyr (Whosebug post on how that would work)