假设我有一个函数extract_surname()
,它将“Surname,Firstname”变成“Surname”。如何使用此函数来更改因子变量的级别?
该因素的不同级别不是事先知道的,只是它们满足所描述的命名模式。 AFAIK dplyr的recode()
无法在此处应用,因为它需要显示所有替换的明确列表。或者有没有办法生成这样的列表?
答案 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()
。