R - 如何使用函数重命名因子级别?

时间:2018-01-25 10:50:42

标签: r dplyr

假设我有一个函数extract_surname(),它将“Surname,Firstname”变成“Surname”。如何使用此函数来更改因子变量的级别?

该因素的不同级别不是事先知道的,只是它们满足所描述的命名模式。 AFAIK dplyr的recode()无法在此处应用,因为它需要显示所有替换的明确列表。或者有没有办法生成这样的列表?

2 个答案:

答案 0 :(得分:1)

您可以按以下方式设置级别

x <- as.factor(head(letters))
x
# [1] a b c d e f
# Levels: a b c d e f

levels(x) <- toupper(levels(x))
x
# [1] A B C D E F
# Levels: A B C D E F

答案 1 :(得分:0)

data.frame df,其中2个名称为因子

df <- data.frame('NAME' = c('Bob', 'Anna'))
levels(df$NAME)                            
[1] "Anna" "Bob"

我添加了一个新名称as.factor

levels(df$NAME)<-c(levels(df$NAME),"Terru_theTerror")
levels(df$NAME) 
[1] "Anna"            "Bob"             "Terru_theTerror"

您可以在新关卡的归属中使用您的函数extract_surname()