首页 > 解决方案 > 在 R 中,如何使用不同的标签设置和保留自定义级别?

问题描述

在 R 中,如何使用不同的标签设置和保留自定义级别?

也就是说,我想在因子的级别中设置自定义数字,并且这些数值 - 要保留的整数,而不是转换为“1、2、3 等”。

我知道一种解决方案是将这些权重设置为标签,但是我会错过因素的“标签”。

不保留因子之间的“加权”距离。是否有可能在 R 中使用单个变量来实现这样的目标?

例如:

age_f <- factor( c(1, 10, 100), levels = c( 1, 10, 100 ), labels = c( "baby", "child", "old" ), ordered = T )
levels(age_f)
   [1] "baby"  "child" "old"  
labels(age_f)
   [1] "1" "2" "3"
 labels(levels(age_f))
    [1] "1" "2" "3"
 as.numeric(age_f)
    [1] 1 2 3

Desired output: 
 as.numeric(age_f)
        [1] 1 10 100

如果这在 R 因子中不存在,是否很容易通过自定义函数产生这样的结果?

标签: rintegerr-factorlevels

解决方案


你可以使用这个labelled包。

library(labelled)
labelled(c(1, 10, 100), c(baby = 1, child = 10 , old = 100))

<Labelled double>
[1]   1  10 100

Labels:
 value label
     1  baby
    10 child
   100   old

如果您稍后想将其转换为常规因子,您可以使用to_factor.


推荐阅读