У меня есть фактор выборки:
x <- factor(c("alpha", "beta", "gamma", "alpha", "beta"))
# Output
> x
[1] alpha beta gamma alpha beta
Levels: alpha beta gamma
Уровни факторов можно переименовать несколькими способами (описано здесь в Поваренной книге для R).Функция revalue()
библиотеки plyr
является опцией:
library(plyr)
revalue(x, c("beta" = "two", "gamma"="three"))
# Output
> revalue(x, c("beta" = "two", "gamma"="three"))
[1] alpha two three alpha two
Levels: alpha two three
Задача
Я хотел бы использовать функцию revalue()
внутри функции, поэтому я подумал, что можно было бы использовать поднабор фактора в функции revalue()
:
revalue(x, c(x[2] = "two", x[3]="three"))
Это приводит к следующей ошибке:
Error: unexpected '=' in "revalue(x, c(paste(x[2]) ="
Далее я попробовалpaste()
функция:
revalue(x, c(paste(x[2]) = "two", x[3]="three"))
К сожалению, с той же ошибкой.
Вопрос
Что здесь происходит?Поскольку paste(x[2])
равно "beta"
, я думал, что это должно работать?