《Cookbook for R》 Manipulating Data ~ Factors
Renaming levels of a factor 重命名因子的水平
先创建示例
x <- factor(c("alpha","beta","gamma","alpha","beta"))
x
#> [1] alpha beta gamma alpha beta
#> Levels: alpha beta gamma
levels(x)
#> [1] "alpha" "beta" "gamma"
想要重命名因子的level
最简单的办法是使用来自于plyr
包的 revalue()
或 mapvalues()
:
library(plyr)
revalue(x, c("beta"="two", "gamma"="three"))
#> [1] alpha two three alpha two
#> Levels: alpha two three
mapvalues(x, from = c("beta", "gamma"), to = c("two", "three"))
#> [1] alpha two three alpha two
#> Levels: alpha two three
也可以用R的内置函数来做以下事情
# 以重命名形式:将beta改名为two
levels(x)[levels(x)=="beta"] <- "two"
# 也可以根据位置进行重命名,但这有可能会改变的你数据
# 因为因子的数值或者位置发生变化可能导致错误的数据
# 按照不同水平下表来重命名:更改第三个项目"gamma"为"three"
levels(x)[3] <- "three"
x
#> [1] alpha two three alpha two
#> Levels: alpha two three
# 所有水平都重命名
levels(x) <- c("one&