如何在R中的svytable中包含缺失值以匹配Stata的tab命令?

问题描述 投票:0回答:1

当然,这是一个您可以使用的 Stack Overflow 问题:


我正在尝试使用

survey
包在 R 中复制 Stata 命令,但没有得到相同的结果。在 Stata 中,我使用以下命令来获取包括缺失值的加权计数:

tab fp_message_radio [iweight=wt], missing

enter image description here

在 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 命令相同?

dplyr survey weighted
1个回答
0
投票

在 Stata 中,tab 命令中的缺失选项可确保缺失值包含在表格中。

默认情况下,svytable 等 R 函数会省略 NA 值。
要使用调查包复制 Stata 行为并在 R 中包含缺失值,您可以通过修改数据来调整代码,以在应用 svytable 之前明确将 NA 值视为单独的类别。

以下是修改 R 代码的方法:

  • 将 fp_message_radio 中的 NA 值转换为新类别(例如“失踪”)。
  • 使用此更新的变量重新创建调查设计对象。
  • 对更新的变量使用 svytable 来获取加权计数,包括“缺失”类别。

这是更新后的 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 中缺失选项的行为。

© www.soinside.com 2019 - 2024. All rights reserved.