如何使用新 Column/Factor 更新调查设计
How to update Survey Design with new Column/Factor
我想通过更新我的调查设计来添加一个新列,但我不确定如何操作。我正在使用以下网站,这对我有很大帮助:http://asdfree.com/survey-of-consumer-finances-scf.html
我正在使用消费金融数据调查来得出各种分组的金融资产摘要。这项调查让受访者回答问题,我感兴趣的部分是金融资产部分,尤其是资产净值。
我先下载并导入数据:
library(lodown)
lodown( "scf" , output_dir = file.path( path.expand( "~" ) , "SCF" ) )
library(lodown)
# examine all available SCF microdata files
scf_cat <-
get_catalog( "scf" ,
output_dir = file.path( path.expand( "~" ) , "SCF" ) )
# 2007 only
scf_cat <- subset( scf_cat , year == 2007 )
# download the microdata to your local computer
scf_cat <- lodown( "scf" , scf_cat )
然后我构建了一个多重估算的复杂样本调查设计,如上面网站所述:
scf_imp_2007 <- readRDS( file.path( path.expand( "~" ) , "SCF" , "scf 2007.rds" ) )
scf_rw_2007 <- readRDS( file.path( path.expand( "~" ) , "SCF" , "scf 2007 rw.rds" ) )
scf_design_2007 <-
svrepdesign(
weights = ~wgt ,
repweights = scf_rw_2007[ , -1 ] ,
data = imputationList( scf_imp_2007 ) ,
scale = 1 ,
rscales = rep( 1 / 998 , 999 ) ,
mse = FALSE ,
type = "other" ,
combined.weights = TRUE
)
数据有多个列,但我对按“收入”对“资产净值”分组感兴趣。虽然我可以执行以下操作
scf_MIcombine( with( scf_design_2007 ,
svyby( ~ networth , ~ income , svytotal )
) )
我认为这不对,即使是这样,我得到了每个受访者收入和相应净资产的列表,我想更新设计并添加一个新列,将所有受访者的净资产分为 1 个4 个收入桶:
0-100k,
100k-200k,
200k-400k,
大于 400k
这样我就可以了解净资产是如何分布在不同收入阶层的。关于如何做到这一点的任何想法?我试过搜索论坛,但没有任何运气。任何帮助深表感谢。谢谢。
修改variable recoding step中的hhsex
例子,也许
income_cat =
factor(
1 + findInterval(
income ,
c( 100000 , 200000 , 400000 )
) ,
levels = 1:4 ,
labels = c( 'below 100k' , '100k - below 200k' , '200k - below 400k' , '400k+' )
)
然后在您的 svyby()
中使用 income_cat
而不是 income
我想通过更新我的调查设计来添加一个新列,但我不确定如何操作。我正在使用以下网站,这对我有很大帮助:http://asdfree.com/survey-of-consumer-finances-scf.html
我正在使用消费金融数据调查来得出各种分组的金融资产摘要。这项调查让受访者回答问题,我感兴趣的部分是金融资产部分,尤其是资产净值。
我先下载并导入数据:
library(lodown)
lodown( "scf" , output_dir = file.path( path.expand( "~" ) , "SCF" ) )
library(lodown)
# examine all available SCF microdata files
scf_cat <-
get_catalog( "scf" ,
output_dir = file.path( path.expand( "~" ) , "SCF" ) )
# 2007 only
scf_cat <- subset( scf_cat , year == 2007 )
# download the microdata to your local computer
scf_cat <- lodown( "scf" , scf_cat )
然后我构建了一个多重估算的复杂样本调查设计,如上面网站所述:
scf_imp_2007 <- readRDS( file.path( path.expand( "~" ) , "SCF" , "scf 2007.rds" ) )
scf_rw_2007 <- readRDS( file.path( path.expand( "~" ) , "SCF" , "scf 2007 rw.rds" ) )
scf_design_2007 <-
svrepdesign(
weights = ~wgt ,
repweights = scf_rw_2007[ , -1 ] ,
data = imputationList( scf_imp_2007 ) ,
scale = 1 ,
rscales = rep( 1 / 998 , 999 ) ,
mse = FALSE ,
type = "other" ,
combined.weights = TRUE
)
数据有多个列,但我对按“收入”对“资产净值”分组感兴趣。虽然我可以执行以下操作
scf_MIcombine( with( scf_design_2007 ,
svyby( ~ networth , ~ income , svytotal )
) )
我认为这不对,即使是这样,我得到了每个受访者收入和相应净资产的列表,我想更新设计并添加一个新列,将所有受访者的净资产分为 1 个4 个收入桶:
0-100k, 100k-200k, 200k-400k, 大于 400k
这样我就可以了解净资产是如何分布在不同收入阶层的。关于如何做到这一点的任何想法?我试过搜索论坛,但没有任何运气。任何帮助深表感谢。谢谢。
修改variable recoding step中的hhsex
例子,也许
income_cat =
factor(
1 + findInterval(
income ,
c( 100000 , 200000 , 400000 )
) ,
levels = 1:4 ,
labels = c( 'below 100k' , '100k - below 200k' , '200k - below 400k' , '400k+' )
)
然后在您的 svyby()
中使用 income_cat
而不是 income