Мне нужно создать одностороннюю таблицу частот. Таблицы должны включать пропорции для переменных.
Используя prop.table (svytable ()), я могу извлечь пропорции для одной переменной за раз.
library(survey)
round(prop.table(svytable(~varA,design=designA))*100,digits=2)
Однако мне нужнокоды, которые объединяют каждый вывод для каждой переменной в одну таблицу. Я попробовал ниже, но это не таблица.
c(output1,output2...)
Например, ожидаемый вывод для VarA и VarB с 2 уровнями
|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
Пример dput (data)
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)