gpt4 book ai didi

r - 使用调查包中的调查权重遍历列并打印表格

转载 作者:行者123 更新时间:2023-12-04 10:59:54 24 4
gpt4 key购买 nike

我正在尝试遍历数据集的列并创建比例表。调查包在变量之前需要一个“~”,这使得遍历列变得很棘手。

数据和设计:

library(survey)
dat <- data.frame(id=c(1,2,3), weight=c(0,2,0.1), var1=c(2,3,5), var2=c(2,6,7))
design <- svydesign(id=~1, weights=~weight, data=dat)

试图:
cols <- c("var1", "var2") # columns to loop through
for(i in seq_along(cols)) {
prop.table(svytable(~i, design))
}

我收到以下错误消息:
Error in model.frame.default(formula = weights ~ i, data = model.frame(design)) :
variable lengths differ (found for 'i')

谢谢

最佳答案

承认使用 bquote作为上面 Ben 评论中表达的部分替换,您可以修改您的 for loop如下:

cols <- c("var1", "var2") # columns to loop through
for(i in seq_along(cols)){
print(prop.table(svytable(bquote(~.(as.name(cols[i]))), design)))
}
# var1
# 2 3 5
# 0.00000000 0.95238095 0.04761905
# var2
# 2 6 7
# 0.00000000 0.95238095 0.04761905
数据
library(survey)
dat <- data.frame(id=c(1,2,3), weight=c(0,2,0.1), var1=c(2,3,5), var2=c(2,6,7))
design <- svydesign(id=~1, weights=~weight, data=dat)

关于r - 使用调查包中的调查权重遍历列并打印表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58884848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com