Я не уверен, возможно ли это, но есть ли способ в R запустить команду и сохранить ее в виде нескольких объектов на основе группы? Например, я написал код, который подсчитывает, сколько сотрудников находится на руководящей должности в зависимости от их отдела.
library(tidyverse)
sample <- tibble(department = c("Admin", "Admin", "Office of President", "Office of President"),
sup_status = c("Not Supervisor", "Supervisor", "Not Supervisor", "Supervisor"),
n = c(918, 152, 69, 192))
Но то, что я действительно хочу, это вектор процентного отношения супервизоров по отделам. Я могу получить R, чтобы получить один длинный вектор всех процентов:
library(tidyverse)
vector_of_all_percents <- sample %>%
group_by(department) %>%
mutate(sum_new = sum(n)) %>%
rowwise() %>%
mutate(percent = n/sum_new) %>%
select(percent) %>%
as_vector()
vector_of_all_percents
percent1 percent2 percent3 percent4
0.8579439 0.1420561 0.2643678 0.7356322
Мои фактические данные имеют много отделов. Есть ли способ настроить мой приведенный выше код, чтобы заставить R автоматически создавать объекты по отделам, что-то вроде этого:
vector_for_admin
percent1 percent2
0.8579439 0.1420561
vector_for_office
percent1 percent2
0.2643678 0.7356322
Я не уверен, что мне нужны команды slice () или split () или, если это вообще возможно. Любое руководство будет очень ценится!