在不引用因子名称的情况下重命名因子水平

Renaming factor levels without referring to the factor name

我有一些因子水平名称非常混乱的数据,有时超过一句话。出于这个原因,我更愿意通过数字来引用级别以重命名它们(而不是通常的因子级别名称)。对于下面的示例数据,我如何重命名因子级别(假设为“G”、“S1”和“S2”),而不提及“砾石”、“砂岩”或“粉砂岩”?

df <- data.frame(x = c("gravel", "sandstone", "siltstone"))

您可以用 levels<- 更改它。

df <- data.frame(x = c("gravel", "sandstone", "siltstone"), stringsAsFactors = TRUE)
levels(df$x) 
#[1] "gravel"    "sandstone" "siltstone"

levels(df$x) <- c('G', 'S1', 'S2')
levels(df$x) 
#[1] "G"  "S1" "S2"

df
#   x
#1  G
#2 S1
#3 S2

我们可以用labels

调用factor
df$x <- factor(df$x, labels = c("G", "S1", "S2"))
df$x
[1] G  S1 S2
Levels: G S1 S2

数据

df <- data.frame(x = c("gravel", "sandstone", "siltstone"), stringsAsFactors = TRUE)