У меня есть большой набор данных с данными наблюдений, которые я хотел бы агрегировать на уровне страны (также по факторам), чтобы использовать эти данные в качестве данных на уровне страны в другом наборе данных. Один df
, который я хотел бы объединить, имеет следующие классы:
character labelled numeric
24 272 50
Где я почти уверен, что помеченный класс является результатом библиотеки Hmisc
.
Я начал следующим образом, который работал довольно хорошо.
dfsum <- df %>%
group_by(countryyear) %>%
summarise_all(funs(if(is.numeric(.)) mean(., na.rm = TRUE) else first (.)))
Удивительно, но это оставляет меня с 244/346 переменными (я понятия не имею, почему это будет такое число, любое объяснение было бы замечательно).
Я бы хотел включить в dfsum
как можно больше столбцов. Я понимаю, что для неупорядоченных факторов, которые не дают никакой полезной информации, но это будет для упорядоченных факторов. Для бинарных переменных значение между 0 и 1, например, даст мне размер каждой категории, а порядковые переменные часто являются шкалами. Я пытался сделать:
dfsum <- df%>%
group_by(countryyear) %>%
summarise_all(funs(if(is.numeric(.)|is.factor(.)) mean(., na.rm = TRUE) else first (.)))
Но это на самом деле ничего не делало (не добавляя никаких дополнительных переменных).
Что еще более важно, я бы хотел, чтобы в процессе обобщения сохранялась информация о факторах. Можно ли каким-то образом прикрепить эту информацию другим способом? Например, чтобы это было двоичное значение (возможно, если более 50% исходной переменной было равно 0 или 1), или добавить шкалу (взяв минимум и максимум исходной переменной)?