假设我有一个分类变量,例如:

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等

最佳答案

更一般而言,如果您的分类变量未按此类模式进行分组,则可以使用case_when中的dplyr来指定映射:

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/

10-12 20:05