【发布时间】:2020-10-22 15:42:33
【问题描述】:
我有这样的数据。我的实际数据包含 500 多个变量和 2000 行。大多数变量都是数字。
library(survey)
library(dplyr)
data_in <- read_table2("Q62_1 Q62_2 Q62_3 Q62_4 Q62_5 Q62_6 Q62_8 Q62_9 Q62_11 strata_num fpl_num ID wgt_part2B
0 0 0 0 0 0 1 0 NA 28 1024 1 13.23574543
NA NA NA NA NA NA NA NA 1 56 1024 2 2.116895199
1 0 0 1 0 0 1 1 NA 53 1024 3 3.570008516
NA NA NA NA NA NA NA NA 1 55 175 4 2.136456013
NA NA NA NA NA NA NA NA 1 65 1024 5 3.126420259
NA NA NA NA NA NA NA NA 1 48 1024 6 22.76417923
0 0 0 1 0 0 1 0 NA 57 1024 7 41.29535294
1 0 0 1 0 0 0 1 NA 50 1024 8 3.343874216
0 1 0 0 1 0 1 0 NA 63 1024 9 4.042140961
0 0 1 0 0 1 0 0 NA 66 175 10 2.071694136
0 0 0 0 0 0 0 1 NA 3 1024 11 33.75452805
1 1 1 1 1 1 1 1 NA 53 1024 12 3.676005363
NA NA NA NA NA NA NA NA 1 50 1024 13 1.816867232
NA NA NA NA NA NA NA NA 1 31 1024 14 7.386627674
1 1 0 1 1 0 1 1 NA 43 1024 15 41.09143829
1 0 0 0 0 0 0 0 NA 22 1024 16 2.053463221
NA NA NA NA NA NA NA NA 1 46 1024 17 2.977662086
NA NA NA NA NA NA NA NA 1 10 175 18 1.600314736
1 1 0 1 0 0 0 0 NA 5 1024 19 11.9602499
NA NA NA NA NA NA NA NA 1 39 1024 20 2.177173615
0 0 0 0 0 0 1 1 NA 17 1024 21 28.22195816
NA NA NA NA NA NA NA NA NA 47 1024 22 1.565697789
NA NA NA NA NA NA NA NA NA 65 1024 23 1.679090261
0 0 1 0 0 0 1 0 NA 40 175 24 1.735284925
0 0 0 0 1 0 1 1 NA 53 1024 25 1.60990274
NA NA NA NA NA NA NA NA 1 26 1024 26 1.949402809
NA NA NA NA NA NA NA NA 1 56 175 27 1.851846814
1 0 0 0 1 0 1 1 NA 37 1024 28 16.71925735
0 0 0 0 0 0 0 1 NA 63 1024 29 4.269656658
NA NA NA NA NA NA NA NA NA 27 1024 30 1.471351266
0 0 0 0 0 1 0 1 NA 70 1024 31 1.714126825
1 1 0 1 1 0 1 0 NA 48 1024 32 4.113308907
0 0 1 1 1 0 1 1 NA 44 175 33 2.039677382
0 0 0 0 1 0 1 0 NA 32 1024 34 1.909546375
")
我设置了这样的调查设计
SurveyDesign <- svydesign(id =~ID,
strata =~strata_num,
weights = ~wgt_part2B,
fpc =~fpl_num,
data = data_in)
我对所有变量都运行了 svymean
svymean(reformulate(names(data_in)),SurveyDesign,na.rm=TRUE)
由于某种原因,所有均值都显示为零。当我对一些变量运行 svymean 时,平均值显示得很好。
这是 svymean 使用其中一个变量的示例
data_in2 <- data_in1 %>% select(matches("Q62_11|strata_num|fpl_num|ID|wgt_part2B"))
SurveyDesign <- svydesign(id =~ID,
# strata =~strata_num,
weights = ~wgt_part2B,
# fpc =~fpl_num,
data = data_in2)
svymean(reformulate(names(data_in2)),SurveyDesign,na.rm=TRUE)
有什么建议吗??
【问题讨论】:
-
@Ronak Shah 知道为什么会发生这种情况吗?
-
看起来每行都有 NA?我不使用 svymean 但它只考虑完整的案例吗?
-
@Dason 我认为 na.rm 应该删除应该解决这个问题......此外,即使有很多 NA,svymean 也适用于 Q62_11。
-
我想你误解了我的意思。每一行都有 NA。因此,如果它只查看完整的行,您将没有任何数据。就像我说的那样,我不使用该软件包,这与我的预期背道而驰,但对您的数据有意义。
-
另外,除非您调用加载您正在使用的包,否则您的示例也无法重现