我正试图在R
中对分类变量进行BIN但是我无法将给定的信息聚类成一个有用的组。
例如:采用以下变量Grade
,其中包含下面提到的唯一值。
Grade <- OM1 OM2 PC1 SC1 SC3 AM1 AM3 PL2 SC2 UH1 SS2 PM3
上面提到的是公司中分配给员工的不同等级。我希望将信息分组到有意义的组中,如:
GROUP
1 - Low grades
- 应包含OM1
,OM2
和PC1
GROUP2
- Medium grades
应包含具有3到3年经验的员工的中等优先级,例如SC3
,AM1
,AM3
和{ {1}}
PL2
- GROUP3
应包含针对VPS和投放管理员的高优先级等级,例如High grades
,SC3
,AM1
和AM3
任何帮助都将深表感谢。 提前谢谢。
答案 0 :(得分:0)
我将假设第3组的成绩未在第1组和第2组中指定。
Grade <- c("OM1", "OM2", "PC1", "SC1", "SC3", "AM1", "AM3", "PL2", "SC2", "UH1", "SS2", "PM3")
base R:
ifelse(Grade %in% c("OM1", "OM2", "PC1"), "Low grades",
ifelse(Grade %in% c("SC1", "SC3", "AM1", "AM3", "PL2"), "Medium grades", "High grades"))
dplyr:
case_when(Grade %in% c("OM1", "OM2", "PC1") ~ "Low grades",
Grade %in% c("SC1", "SC3", "AM1", "AM3", "PL2") ~ "Medium grades",
TRUE ~ "High grades")
答案 1 :(得分:0)
我是通过合并(在基础R中)或在您已经拥有的数据之间的连接(在dplyr中)来做到这一点我假设您已经拥有一个具有字段的数据框dat
Grade
。然后你可以做以下事情。 (调用tribble
只是创建显示成绩分档的数据框的众多方法之一。)
library(dplyr)
grade_bins = tribble(
~Grade, ~bin,
'OM1', 'low',
'OM2', 'low',
'PC1', 'low',
'SC1', 'med',
'SC3', 'med',
'AM1', 'med',
'AM3', 'med',
'PL2', 'med',
'SC2', 'high',
'UH1', 'high',
'SS2', 'high',
'PM3', 'high')
dat_with_grades = left_join(dat, grade_levels, by = 'Grade')
我做left_join
因为根据我的经验,这些类型的数据集最终会显示您不知道的变量值(在这种情况下,员工等级),您不知道存在。在这种情况下,dat_with_grades
只会为这些员工提供NA
&#39;}等级,而不是默默地放弃它们。