使用 .csv 文件为 R 中的因素分配标签

Assign lables to factors in R using .csv-file

我正在 R 中处理一个 .csv 文件,其中有一列我想作为一个因素处理。它包含数字。

variable1
1 
2
4
4
1
3
and so on

我现在想为这个因子变量分配标签。我所做的工作:

v1$variable1 <- factor(v1$variable1,
                            levels = c(1,2,3, 4, 5, 6 (and so on)),
                            labels = c("school 1", "school 2", "school 3", "school 4", "school 5",
                                       "school 6" (and so on)) 

但是,学校列表是非常动态的,与其每次都更改代码,不如让另一个包含级别和标签的 csv 文件更优雅:

level   lables
1       school1
2       school2
3       school3
and so on

然后将该 csv 文件读入 R 代码并根据第二个 cvs 文件分配标签。这可能吗?如果可能,怎么做?

非常感谢您的帮助!!

一般来说,如果您按照建议使用外观 table,您可以...

school_lut <- data.frame(
  value = c(1, 2, 3, 4, 5),
  label = c("Cambridge", "Bezt school", "R", "S", "Holly")
)

school_lut_ss <- school_lut[school_lut$value %in% df$var1, ]
# Previous step only needed to eliminate levels you don't have in your data
df$var1 <- factor(df$var1, school_lut_ss$value, school_lut_ss$label)

table(df$var1)

# Cambridge Bezt school           S       Holly 
#         1           4           1           2 

数据

set.seed(12)
df <- data.frame(
  var1 = sample(1:5, size = 8, replace = TRUE)
)

如果你在v2中创建另一个csv,你可以使用matchvariable1level匹配并得到相应的lables

v1$variable2 <- v2$lables[match(v1$variable1, v2$level)]
v1$variable2 <- factor(v1$variable2)

也许 merge 也适用于这种情况

v1 <- merge(v1, v2, by.x = 'variable1', by.y = 'level')