Я написал сценарий R для циклического прохождения группы переменных в опросе и вывода взвешенных значений, CV, CI и т. Д. Я хотел бы, чтобы он также выводил счетчик невзвешенных наблюдений.
Я знаюэто немного ленивый вопрос, потому что я могу самостоятельно рассчитать невзвешенные значения и присоединить их обратно. Я просто пытаюсь скопировать скрипт stata, который бы возвратил 'obs'
svy:tab jdvariable, per cv ci obs column format(%14.4g)
Это мойтаблица рассчитанных значений:
myresult_year_calc <- svyby(make.formula(newmetricname), # variable to pass to function
by = ~year, # grouping
design = subset(csurvey, geoname %in% jv_geo), # design object with subset definition
vartype = c("ci","cvpct"), # report variation as ci, and cv percentage
na.rm.all=TRUE,
FUN = svymean # specify function from survey package
)
Используя unwtd.count вместо FUN, я получаю нужные значения.
myresult_year_obs <- svyby(make.formula(newmetricname), # variable to pass to function
by = ~year, # grouping
design = subset(csurvey, geoname %in% jv_geo), # design object with subset definition
vartype = c("ci","cvpct"), # report variation as ci, and cv percentage
na.rm.all=TRUE,
unwtd.count
)
Честно говоря, при написании этого вопроса я сделал это на 98% черезрешение, но я все равно спрошу, если кто-то знает более эффективный способ.
myresult_year_calc
и myresult_year_obs
оба возвращают то, что я ожидаю, и если я использую merge(myresult_year_calc, myresult_year_obs by"year")
, я получаю таблицуЯ хочу. Это на самом деле просто дает мне один счет в год в этом примере вместо одного счета для ответов "Да" и одного счета для "Нет".
Есть ли способ получить оба средстваа невзвешенные считается с помощью одной команды?