小编Ped*_*ani的帖子

如何使用调查包的 svyby 功能在多列上进行循环?

我一直在尝试很多方法,但我没有解决问题。我找到了here、here和here,但我无法使它们适应我的问题。

我想传递两个字符串向量的组合,其中 'pop' 的每个元素将与 'territ' 的每个元素组合在一起,并通过数字向量(“enroll_lines”)覆盖“enroll”列的子集。因此,我想要在 svyby 函数内部进行三次迭代:在字符串向量中进行两次迭代,在子集数值向量中进行一次迭代。

我想要一个数据框,其中包含设计对象“dclus1”上三个向量的所有结果组合。

预先感谢您的关注和努力。

df <- apiclus1
df$pais <- 0
df$pop_tot <- 1

pop <- c("pop_tot", "stype", "awards")
territ <- c("pais","cname", "dname")
enroll_lines = c(355, 455, 555)

dclus1<-svydesign(id=~dnum, weights=~pw, data=df, fpc=~fpc)

svyloop <- function(vv1, vv2, dsgn, xx) {
  svyby( as.formula( paste0( "~" , vv1)) , by = as.formula( paste0( "~" , vv2)) , subset(dsgn, enroll < xx), svytotal , vartype = 'cv')
}
svyloop(pop, territ, dclus1, enroll_lines)
#Error …
Run Code Online (Sandbox Code Playgroud)

loops r survey

5
推荐指数
1
解决办法
292
查看次数

标签 统计

loops ×1

r ×1

survey ×1