r - 如何将分类变量折叠成 R 中更少的元素

标签 r

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

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/

相关文章:

r - 在 R 中使用 fitdist 时出错 - 必须定义 dllogis 函数

r - ggplot2 - 在 x 轴上按季度绘制的线图

r - 如何将数据框中的每一列拆分为两列?

r - Gather_ 不起作用。在标准评估模式下引用和〜ing不应该具有相同的效果吗?

python - 将带有换行符的 csv 文件导入到 R 或 Python Pandas

r - 使用回归线和正态分布叠加制作 ggplot

r - 使用(箱线)图函数避免代码重复

r - 使用 gg voronoi 按因子着色时手动设置 Voronoi 图的颜色

r - 如何手动评分考试/问题?

r - 从 R 包中导出环境