我不确定这是否可行,但是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()命令是否是我所需要的,或者甚至是可能的。任何指导将不胜感激!