簡體   English   中英

從R Survey軟件包運行svymean時,可以包括unwtd.count嗎?

[英]Can I get unwtd.count included when running the svymean from the R Survey package?

我已經編寫了一個R腳本來循環遍歷調查中的一堆變量,並輸出加權值,CV,CI等。我希望它也輸出未加權的觀察值。

我知道這是個懶惰的問題,因為我可以自己計算未加權的計數並將其重新加入。我只是想復制一個會返回“ obs”的狀態腳本

svy:tab jdvariable, per cv ci obs column format(%14.4g)

這是我的計算值表:

myresult_year_calc <- svyby(make.formula(newmetricname), # variable to pass to function
by = ~year,  # grouping
design = subset(csurvey, geoname %in% jv_geo), # design object with subset definition
vartype = c("ci","cvpct"), # report variation as ci, and cv percentage
na.rm.all=TRUE,
FUN = svymean # specify function from survey package
)

通過使用unwtd.count而不是FUN,我得到了想要的計數。

myresult_year_obs <- svyby(make.formula(newmetricname), # variable to pass to function
by = ~year,  # grouping
design = subset(csurvey, geoname %in% jv_geo), # design object with subset definition
vartype = c("ci","cvpct"), # report variation as ci, and cv percentage
na.rm.all=TRUE,
unwtd.count
)

老實說,在寫這個問題時,我通過一個解決方案使它達到了98%,但無論如何,我都會問,以防有人知道更有效的方法。

myresult_year_calcmyresult_year_obs都返回我期望的值,並且如果我使用merge(myresult_year_calc, myresult_year_obs by"year") 我會得到想要的表。 實際上,在此示例中,這實際上是每年給我一個計數,而不是“是”響應一個計數和“否”一個計數。

有什么方法可以通過單個命令獲得均值和未加權計數嗎?

我通過創建第二個dsgn函數(權重=〜0)來解決這個問題。 當我在不加權設計中使用svytotal函數運行svyby時,它遵循以下公式。

dsgn2 <- svydesign(ids = ~0, weights = ~0, data = data, na.rm = T)

unweighted_n <- svyby(~interaction(group1,group2), ~as.factor(mean_rating), design = dsgn2, FUN = svytotal, na.rm = T)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM