当然,这是一个您可以使用的 Stack Overflow 问题:
我正在尝试使用
survey
包在 R 中复制 Stata 命令,但没有得到相同的结果。在 Stata 中,我使用以下命令来获取包括缺失值的加权计数:
tab fp_message_radio [iweight=wt], missing
在 R 中,我创建了调查设计对象并使用
svytable
获取 fp_message_radio
的加权计数:
# Create the survey design object
DHSdesign <- svydesign(ids = ~1, data = IRdata, weights = ~wt)
# Use svytable to get weighted counts for fp_message_radio
svytable(~fp_message_radio, DHSdesign)
但是,这不包括缺失值。如何修改 R 代码以包含缺失值并使其与 Stata 命令相同?
在 Stata 中,tab 命令中的缺失选项可确保缺失值包含在表格中。
默认情况下,svytable 等 R 函数会省略 NA 值。
要使用调查包复制 Stata 行为并在 R 中包含缺失值,您可以通过修改数据来调整代码,以在应用 svytable 之前明确将 NA 值视为单独的类别。
以下是修改 R 代码的方法:
这是更新后的 R 代码:
IRdata$fp_message_radio <- ifelse(is.na(IRdata$fp_message_radio), "Missing", IRdata$fp_message_radio)
DHSdesign <- svydesign(ids = ~1, data = IRdata, weights = ~wt)
svytable(~fp_message_radio, DHSdesign)
此方法可确保将缺失值视为表格中的不同类别,类似于 Stata 中缺失选项的行为。