我有一列数据,它是一个有a、B和C级的因子,我想把其中两个级别组合成一个因子,这样它就变成了a和B,B=B和C,或者可能是一个新变量a和D,D=B和C.我可以想出很多方法来实现这一点,通过在列中循环使用if语句,但我觉得应该有一个更优雅的方法,我想知道是否有人能给我指出正确的方向.

推荐答案

使用levels(x) <- ...指定新级别,并合并以前的一些级别.例如:

f <- factor(LETTERS[c(1:3, 3:1)])
f
[1] A B C C B A
Levels: A B C

现在将"A"和"B"组合成一个级别:

levels(f) <- c("A", "A", "C")
f
[1] A A C C A A
Levels: A C

R相关问答推荐

用apply/map/etch替换循环以加快速度

如何按行和列组合多个格式?

self_函数无法工作--无法子集结束后的列

使用tidyverse / Mutate的存款账户余额

如何按排序顺序打印一个框架中所有精确的唯一值?

在数学中正确显示摄氏度、开氏度或华氏度

如何在emmeans中计算连续变量的对比度

如果第一个列表中的元素等于第二个列表的元素,则替换为第三个列表的元素

如何将旋转后的NetCDF转换回正常的纬度/经度网格,并使用R?

计算时间段的ECDF(R)

用关联字符串替换列名的元素

如果可能,将数字列转换为整数,否则保留为数字

以更少间隔的较小表中的聚合离散频率表

R -在先前group_by级别汇总时获取最大大小子组的计数

悬崖三角洲超大型群数计算导致整数溢出

如何创建累加到现有列累计和的新列?

我是否可以使用多个变异项来构建顺序列(标记多个问题)

将列的值乘以在不同数据集中找到的值

数值型数据与字符混合时如何进行绑定

使用函数从R中的列中删除标高