Dplyr действительно отлично работает с наборами данных, и я думаю, что я могу заменить все манипуляции с данными, которые я всегда делал в Excel, с помощью команд dplyr.Однако при работе с несколькими подгруппами сложно вычислить промежуточные итоги и проценты, и я не нашел никакого связанного кода в моем недавнем поиске по этой теме здесь.
Пожалуйста, проверьте следующую таблицу.Все работает нормально, но потратив больше дня, я все еще не понимаю, как выполнить последний расчет: итоги для каждой страны, cH, EC, GT, MX и США.
Я буду рад, если некоторые из экспертов, которых мы только что здесь найдем, могут помочь мне в этом процессе.
Это код и структура данных, если вы хотитевоспроизвести всю среду.
Спасибо.
library(tidyverse)
data %>% group_by(Q7_MoEd, add=TRUE) %>%
mutate(educ_levels_count = n()) %>%
#how many countries we are dealing with
group_by(Country, add=TRUE) %>%
mutate(country_count = n()) %>%
#lets add how many education levels we have
group_by(Q7_MoEd, Country, educ_levels_count, country_count, add=TRUE) %>%
summarise(
educ_count = n(),
educ_percentage = round(educ_count/first(educ_levels_count),2),
#country_percentage = educ_count/first(country_count),
) %>%
mutate(n_percentage = paste0(educ_count," (",educ_percentage,"%)")) %>% #merge variables
select(Q7_MoEd, Country, n_percentage, educ_levels_count) %>%
spread(Country, n_percentage, fill="-") %>%
janitor::adorn_totals("row")
data <- structure(list(Q7_MoEd = structure(c(6L, 3L, 3L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 3L, 5L, 6L, 5L, 5L, 5L, 6L, 5L, 5L, 5L, 2L,
6L, 6L, 6L, 5L, 5L, 5L, 5L, 6L, 5L, 6L, 2L, 6L, 6L, 6L, 6L, 5L,
4L, 5L, 6L, 6L, 5L, 5L, 5L, 5L, 5L, 6L, 1L, 5L, 5L, 6L, 5L, 6L,
5L, 6L, 6L, 6L, 5L, 6L, 6L, 5L, 3L, 5L, 5L, 5L, 6L, 5L, 5L, 6L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 5L, 5L, 4L, 5L, 3L, 5L, 2L, 6L,
5L, 5L, 3L, 3L, 6L, 5L, 2L, 5L, 5L, 6L, 5L, 6L, 4L, 6L, 5L, 3L,
5L, 6L, 5L, 6L, 6L, 5L, 3L, 5L, 5L, 4L, 5L, 6L, 5L, 2L, 5L, 6L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 3L, 5L, 6L, 5L, 5L, 1L, 5L, 6L,
5L, 5L, 5L, 6L, 5L, 5L, 3L, 5L, 5L, 5L, 5L, 4L, 6L, 5L, 6L, 5L,
5L, 5L, 6L, 2L, 5L, 3L, 6L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 3L, 5L, 4L, 5L, 5L, 5L, 5L, 5L, 6L, 5L,
5L, 3L, 5L, 5L, 6L, 5L, 5L, 5L, 6L, 5L, 6L, 5L, 3L, 5L, 4L, 5L,
5L, 3L, 6L, 6L, 3L, 4L, 4L, 2L, 3L, 5L, 5L, 3L, 5L, 3L, 5L, 6L,
5L, 5L, 5L, 5L, 6L, 6L, 4L, 5L, 5L, 5L, 3L, 5L, 5L, 5L, 3L, 5L,
3L, 6L, 5L, 3L, 5L, 3L, 5L, 5L, 5L, 5L, 3L, 5L, 2L, 5L, 5L, 3L,
3L, 2L, 3L, 5L, 5L, 3L, 3L, 5L, 1L, 5L, 4L, 5L, 3L, 3L, 5L, 5L,
3L, 5L, 5L, 3L, 5L, 5L, 6L, 3L, 5L, 3L, 5L, 5L, 3L, 3L, 5L, 4L,
3L, 5L, 6L, 3L, 5L, 6L, 3L, 5L, 1L, 5L, 5L, 5L, 6L, 5L, 3L, 2L,
2L, 2L, 2L, 4L, 2L, 2L, 2L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 3L, 5L,
2L, 5L, 5L, 5L, 5L, 5L, 5L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 3L, 2L,
5L, 2L, 4L, 2L, 3L, 4L, 3L, 3L, 4L, 4L, 3L, 2L, 1L, 1L, 3L, 3L,
3L, 3L, 2L, 2L, 3L, 2L, 3L, 5L, 3L, 5L, 4L, 1L, 5L, 2L, 2L, 1L,
1L, 1L, 5L, 5L, 3L, 2L, 1L, 5L, 3L, 5L, 6L, 5L, 4L, 5L, 6L, 5L,
3L, 5L, 3L, 5L, 3L, 1L, 3L, 4L, 2L, 6L, 5L, 5L, 6L, 6L, 5L, 2L,
4L, 4L, 6L, 5L, 6L, 4L, 6L, 3L, 3L, 4L, 1L, 6L, 6L, 1L, 2L, 2L,
1L, 1L, 3L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 6L, 1L, 2L, 1L, 6L,
1L, 1L, 5L, 1L, 3L, 3L, 1L, 3L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L,
2L, 1L, 1L, 2L, 6L, 4L, 2L, 4L, 4L, 2L, 4L, 2L, 4L, 4L, 6L, 5L,
2L, 5L, 4L, 6L, 4L, 6L, 4L, 4L, 4L, 4L, 3L, 2L, 5L, 4L, 2L, 6L,
6L, 2L, 4L, 2L, 6L, 2L, 5L, 4L, 3L, 2L, 4L, 4L, 4L, 5L, 4L, 4L,
4L, 4L, 6L, 5L, 2L, 5L, 6L, 2L, 5L, 5L, 5L, 2L, 2L, 5L, 4L, 6L,
4L, 2L, 2L, 4L, 2L, 4L, 2L, 2L, 1L, 4L, 4L, 4L, 5L, 5L, 2L, 4L,
2L, 4L, 2L, 1L, 4L, 5L, 5L, 2L, 4L, 4L, 4L, 3L, 4L, 2L, 4L, 2L,
2L, 6L, 1L, 2L, 2L, 4L, 4L, 4L, 2L, 4L, 5L, 2L, 4L, 4L, 4L, 2L,
5L, 6L, 4L, 5L, 5L, 4L, 5L, 2L, 4L, 4L, 4L, 5L, 5L, 4L, 4L, 4L,
4L, 2L, 5L, 5L, 4L, 5L, 4L, 4L, 5L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 2L, 3L, 5L,
4L, 2L, 2L, 2L, 2L, 3L, 1L, 4L, 2L, 3L, 4L, 2L, 3L, 2L, 5L, 3L,
3L, 5L, 2L, 1L), .Label = c("Primaria", "Secundaria", "Bachillerato",
"Tecnico", "Universitario", "Otro", "No sé", "No aplica", "T?o",
"No se"), class = "factor"), Country = c("MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "CH", "CH", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC", "EC",
"EC", "EC", "EC", "EC", "EC", "EC", "EC", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX",
"MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "MX", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT",
"GT", "GT", "GT", "GT", "GT", "GT", "GT", "GT", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH", "CH",
"US", "US", "US", "US", "US", "US", "US", "US", "US", "US", "US",
"US", "US", "US", "US", "US", "US", "US", "US", "US", "US", "US",
"US", "US", "US", "US", "US", "US", "US", "US", "US", "US", "US",
"US", "US", "US", "US", "US", "US", "US", "US", "US")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -618L))