在R中添加具有%1的新列
我有一个损耗数据集,我现在主要关注两个领域:部门和状态(终止或不终止)。现在,我想制作一个新的专栏,其中将有来自该特定部门的终止人员的百分比。 我无法将其添加到原始数据集中,但我能够创建由部门终止的数据集在R中添加具有%1的新列,r,group-by,R,Group By,我有一个损耗数据集,我现在主要关注两个领域:部门和状态(终止或不终止)。现在,我想制作一个新的专栏,其中将有来自该特定部门的终止人员的百分比。 我无法将其添加到原始数据集中,但我能够创建由部门终止的数据集 dept <- data %>% group_by(dept, STATUS) %>% summarise(count = n()) %>% mutate(percent = count/sum(count) * 100) 现在我只想将原始数据集中状态Y的百分比列分别
dept <- data %>% group_by(dept, STATUS) %>% summarise(count = n()) %>% mutate(percent = count/sum(count) * 100)
现在我只想将原始数据集中状态Y的百分比列分别添加到dept
编辑:
原始数据:
id job_sat dept eth status
1 2 A As N
2 1 C Bl Y
. . . . .
. . . . .
预期产出:
id job_sat dept eth status dept_per
1 2 A As N 63..
2 1 C Bl Y 59..
. . . . .
. . . . .
您可以通过以下方式找到每个部门中
状态==“Y”
的百分比:
library(dplyr)
data %>% group_by(dept) %>% mutate(dept_per = mean(status == 'Y') * 100)
这类似于:
data %>% group_by(dept) %>% mutate(dept_per = sum(status == 'Y')/n() * 100)
这也可以在
数据表中完成
library(data.table)
setDT(data)[, dept_per := mean(status == 'Y'), dept]
和基准R:
data$dept_per <- with(data, ave(status == 'Y', dept))
data$dept\u per试试这个
originaldf$dept_per您是否希望单独将百分比与Y进行比较,将NA与N进行比较?请共享可复制的数据data@ChrisRuehlemann请检查更新的ques@Mohanasundaram请查看我的原始数据集,我想在其中添加新列,该列将包含该列的%Ydept@RonakShah嗨ronak我能自己解决这个问题,这就是为什么删除了这个问题。很抱歉,我刚在新列中得到0您确定在状态列中有确切的“Y”而没有其他内容吗?没有空格或者没有小写字母“y”?你能用dput(head(data))更新你的帖子吗!非常感谢你!你是天才:)嘿,这里的deptdf是什么?新创建的数据帧?deptdf是以百分比表示的数据帧
data$dept_per <- with(data, ave(status == 'Y', dept))