【发布时间】:2016-02-02 20:49:41
【问题描述】:
对于示例数据框:
df <- structure(list(id = 1:25, region.1 = structure(c(1L, 1L, 1L,
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L,
4L, 4L, 4L, 4L, 4L, 4L), .Label = c("AT1", "AT2", "AT3", "AT4"
), class = "factor"), gndr = c(0L, 1L, 0L, 0L, 0L, 1L, 0L, 1L,
1L, 1L, 0L, 0L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 1L,
1L), PoorHealth = c(0L, 1L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L,
0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 1L, 0L, 1L), weight = c(0.3,
1.6, 2.5, 3.5, 0.2, 0.2, 0.2, 0.6, 0.15, 0.25, 1.36, 1, 1, 1,
0.1, 0.2, 0.3, 0.3, 0.3, 0.4, 0.3, 1, 1.4, 1.3, 0.4)), .Names = c("id",
"region.1", "gndr", "PoorHealth", "weight"), class = c("data.table",
"data.frame"), row.names = c(NA, -25L))
我希望使用代码创建一个汇总数据表(使用data.table):
variable.table_1 <- setDT(df)[,.(.N,result=sum((PoorHealth==1)/.N)*100),
by=region.1]
但是,我的原始数据来自一项调查,因此我将设计权重和总体权重相乘(按照调查的指导,并将此变量称为“权重”)。
如何在 variable.table_1 中应用我的“结果”变量的适当权重?
也许我必须使用调查包?看着here 似乎调整了我必须首先通过调查包运行我的数据框......
library(survey)
df.w <- svydesign(id = ~1, data = df, weights = df$weight)
...但我不确定如何将结果合并到汇总数据表中。
非常感谢。
【问题讨论】:
标签: r data.table