gpt4 book ai didi

r - 结合 lapply、svyby、svyratio 计算许多具有置信区间的比率

转载 作者:行者123 更新时间:2023-12-02 05:07:46 24 4
gpt4 key购买 nike

我正在使用 R 中的survey 包来处理美国人口普查局的 PUMS 人口数据集。我为每个广泛的行业创建了一个 bool 值和一个具有三个值的字符变量 MigrationStatus(StayedLeftEntered)。我想按移民状况检查每个行业的 worker 比例。

这工作正常:

AGR_ratio=svyby(~JobAGR, by=~MigrationStatus, denominator=~EmployedAtWork, design=subset(pums_design,EmployedAtWork==1), svyratio, vartype='ci')

但这会产生错误:

varlist=names(pums_design$variables)[32:50]
job_ratios = lapply(varlist, function(x) {
svyby(substitute(~i, list(i = as.name(x))), by=~MigrationStatus, denominator=~EmployedAtWork, design=subset(pums_design,EmployedAtWork==1), svyratio, vartype='ci')
})

#Error in svyby.default(substitute(~i, list(i = as.name(x))), by = ~MigrationStatus, :
#object 'byfactor' not found

varlist

#[1] "JobADM" "JobAGR" "JobCON" "JobEDU" "JobENT" "JobEXT" "JobFIN" "JobINF" "JobMED" "JobMFG" "JobMIL" "JobPRF" "JobRET" "JobSCA" "JobSRV"
#[16] "JobTRN" "JobUNE" "JobUTL" "JobWHL"

最佳答案

这个怎么样?

# setup
library(survey)
data(api)
dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc)

# single example
svyby(~api99, by = ~stype, denominator = ~api00 , dclus1, svyratio)

# multiple example
variables <- c( "api99" , "pcttest" )

# breaks
lapply(variables, function(x) svyby(substitute(~i, list(i = as.name(x))), by=~stype, denominator=~api00, design=dclus1, svyratio, vartype='ci'))

# works
lapply( variables , function( z ) svyby( as.formula( paste0( "~" , z ) ) , by = ~stype, denominator = ~api00 , dclus1, svyratio , vartype = 'ci' ) )

顺便说一句,您可能对 this uspums data automation syntax 感兴趣

关于r - 结合 lapply、svyby、svyratio 计算许多具有置信区间的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22796372/

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