这只是一个非常简单的问题,但我只是无法从网络和书籍中找到合适的函数来使用。
这是我从这里的一篇文章中得到的一个例子。
df <- data.frame(sex = c('F', 'M', 'F', 'M', 'M', 'M', 'F', 'F'),
married = c(1,1,1,1,0,0,1,1),
pens = c(0, 1, 1, 1, 1, 1, 0, 0),
weight = c(1.12, 0.55, 1.1, 0.6, 0.23, 0.23, 0.66, 0.67))
d.s <- svydesign(ids=~1, data=df, weights=~weight)
Run Code Online (Sandbox Code Playgroud)
我想计算百分比变量,例如已婚,并计算标准误差?
我还想对已婚和钢笔进行交叉表并获得结果比例的标准误差?
我怎么做?
我尝试了 svymean 但它会将数值视为整数而不是因子。
使用svytable
summary(d.s)
svytable(~married+pens, d.s)
svytable(married~pens, d.s)
svytable(married~., d.s) #with all variable
Run Code Online (Sandbox Code Playgroud)
interaction一种方法是在公式中使用svymeanor svytotal。
这应该为您提供每个类别的响应比例以及标准误差。
svymean(~interaction(married, pens), d.s.)
Run Code Online (Sandbox Code Playgroud)
这应该为您提供每个类别的频率以及标准误差。
svytotal(~interaction(married, pens), d.s.)
Run Code Online (Sandbox Code Playgroud)
小智 5
prop.table与以下一起使用svy.table:
prop.table(svytable((~married, pens),d.s), margin=1)
#margin=1 will give you column percentages
Run Code Online (Sandbox Code Playgroud)