我正在尝试重新命名一个因素中的级别。我有一个级别“需要缩短的非常长的文本。”并希望将其名称更改为“Levelname”。但是,当我尝试:
levels(df$varname) ["Very long text that needs to be shortened."] <- "Levelname"
当Levelname
级别继续存在时,会生成只有缺失值的级别Very long text...
。
我仍然可以使用
重命名关卡 levels(df$varname) [1] <- "Levelname
但是当我重新运行代码时,如果级别数字以某种方式改变,则宁愿避免使用它。 (我不知道这是否真的会发生,但比抱歉更安全。)
如何重命名关卡并确保正确级别的名称已更改?
答案 0 :(得分:0)
问题在于级别没有命名,因此您无法以这种方式引用它们。如果您想要一种安全的方法来操纵因子水平,请查看forcats
包(tidyverse
的一部分)。它具有功能fct_recode
,可以执行您想要的功能。
library(forcats)
df$varname <- fct_recode(df$varname, Levelname = "Very long text that needs to be shortened")
答案 1 :(得分:0)
试试这段代码(只是一个例子):
y <- gl(2, 4, 8)
levels(y) <- c("low", "high")
y
输出:
[1] low low low low high high high high
Levels: low high
将低级别更改为 medium :
levels(y)[levels(y) == "low"] <- "medium"
y
输出:
[1] medium medium medium medium high high high high
Levels: medium high