【发布时间】:2019-10-09 02:05:24
【问题描述】:
我需要创建单向频率表。 表格必须包含变量的比例。
使用 prop.table(svytable()),我可以一次提取一个变量的比例。
library(survey)
round(prop.table(svytable(~varA,design=designA))*100,digits=2)
但是,我需要将每个变量的每个输出连接到一个表中的代码。我尝试了以下,但它不是表格。
c(output1,output2...)
例如,两级 VarA 和 VarB 的预期输出
|Var Name|Proportion|
| A| |
|Yes | 50.0|
|No | 50.0|
| B| |
|Yes | 20.0|
|No | 80.0|
使用 c() 的实际输出只是一个向量。
Yes No Yes No
50 50 20 80
样本输入(数据)
structure(list(psu = structure(c(1, 1, 2, 2), format.sas = "BEST"),
strata = structure(c(1, 2, 3, 4), format.sas = "BEST"), wt =structure(c(1.7,
0.8, 1.2, 0.3), format.sas = "BEST"), residence = structure(c("Urban",
"Rural", "Urban", "Urban"), format.sas = "$CHAR"), income = structure(c("High", "Low", "Low", "High"), format.sas = "$CHAR")),
label = "TEST", row.names = c(NA, -4L), class = c("tbl_df", "tbl", "data.frame"))
如何提取单个变量的比例示例。
分配库
library(survey)
声明 svydesign
testdesign<- svydesign(id=test$psu, strata=test$strata, weight=test$wt, nest=TRUE, data=test)
生成 svytable
a=round(prop.table(svytable(~residence,design=testdesign))*100,digits=2)
【问题讨论】:
-
您可以使用
dput在您的帖子中添加数据吗? -
@RonakShah 抱歉,我是 R 新手,您指的是使用 svydesign 或原始数据声明的数据的 dput?
-
dput来自 svydesign 的数据。temp <- svytable(~varA,design=designA)然后复制dput(temp)的输出。 -
输出为:structure(c(Urban = 33.17, Rural = 66.83), class= c("svytable", "xtabs", "table"), call = svytable.survey.design(公式 = ~residence, design = tldesign), .Dim = 2L, .Dimnames = list(residence = c("Urban", "Rural")))
-
svytable来自哪个包?我无法从上述dput获取数据,您可以通过编辑您的帖子而不是评论来发布dput原始数据吗?