Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用测量包中的测量权重循环列并打印表_R_Survey - Fatal编程技术网

R 使用测量包中的测量权重循环列并打印表

R 使用测量包中的测量权重循环列并打印表,r,survey,R,Survey,我试图循环遍历数据集的列并创建比例表。调查包需要在变量前加上“~”,这使得在列中循环变得很困难 数据和设计: 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) 图书馆(调查) dat承认使用bquote作为Ben上述评论中表达式的部分替

我试图循环遍历数据集的列并创建比例表。调查包需要在变量前加上“~”,这使得在列中循环变得很困难

数据和设计:

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)
图书馆(调查)

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


cols尝试从列名构建公式-看看这是否有效:
lappy(cols,function(x)prop.table(svytable(bquote(~(as.name(x))),design))
for(i in c('var1','var2'))print(prop.table(as.formula(paste(~),i)),design))
如何将此输出保存到df中?
cols <- c("var1", "var2") # columns to loop through
for(i in seq_along(cols)) {
prop.table(svytable(~i, design))
}