假设我有一个分类变量,例如:
set.seed(123)
x<-sample(c("I", "IA", "IB", "II", "IIB", "IIC", "III", "IIID", "IIIF", "XA", "XB", "XC"),
100, TRUE)
table(x, exclude=NULL)
# x
# I IA IB II IIB IIC III IIID IIIF XA XB XC <NA>
# 5 12 9 7 9 11 6 8 6 12 9 6 0
我的问题是如何轻松地将 x
折叠成四个元素,例如I、II、III 和 X?例如。将 I, IA, IB 组合成 I etc.
最佳答案
更一般地说,如果您的分类变量没有按此类模式分组,您可以使用 dplyr
中的 case_when
指定映射:
y <- case_when(x %in% c("I", "IA", "IB") ~ "I", #or whatever conditions you want
x %in% c("II", "IIA", "IIB") ~ "II", #as above
TRUE ~ "III")
table(y)
I II III
33 24 43
关于r - 如何将分类变量折叠成 R 中更少的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984705/