Я знаю, что ответ на этот вопрос будет простым, но я много искал на форумах и не смог найти решение.
У меня есть столбец с именем Data_source
, по которому я хочу сгруппировать переменные.
У меня есть ряд symptom*
переменных, где я хочу подсчитать согласно Data_source
.
Почему-то я не могу понять, как это сделать. Нормальные функции group_by
не работают должным образом.
Вот этот фрейм данных
df <- wrapr::build_frame(
"Data_source" , "Sex" , "symptoms_decLOC", "symptoms_nausea_vomitting" |
"1" , "Female", NA_character_ , NA_character_ |
"1" , "Female", NA_character_ , NA_character_ |
"1" , "Female", "No" , NA_character_ |
"1" , "Female", "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"1" , "Male" , "Yes" , "No" |
"1" , "Female", "Yes" , "No" |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", "Yes" , "No" |
"2" , "Female", "Yes" , "No" |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ |
"2" , "Male" , NA_character_ , NA_character_ |
"2" , "Female", NA_character_ , NA_character_ )
Обратите внимание, что пол и переменные симптомов - это все факторы, которые включают НС. Я попытался следующее
df %>% na.omit() %>% group_by(Data_source) %>% count("symptoms_decLOC")
Что не работает и является менее чем оптимальным, потому что мне пришлось бы повторять это для каждого столбца. Идеально было бы использовать что-то похожее на lapply(df, count)
, но это не дает мне описания для каждой группы.
EDIT
В ответ на вопрос ниже я добавил ожидаемый результат. Я отредактировал это в Excel, цветовое кодирование group_by
для ясности.
Обратите внимание, как я получаю перерыв для каждого возможного ответа. Когда я запускаю это, используя dplyr
, вот вывод.
> df %>% na.omit() %>% group_by(Data_source) %>% count("symptoms_decLOC")
# A tibble: 2 x 3
# Groups: Data_source [2]
Data_source `"symptoms_decLOC"` n
<chr> <chr> <int>
1 1 symptoms_decLOC 5
2 2 symptoms_decLOC 2