С ?recode
вы должны заметить, что сказано об аргументе as.numeric.result
:
as.factor.result: return a factor; default is ‘TRUE’ if ‘var’ is a
factor, ‘FALSE’ otherwise.
as.numeric.result: if ‘TRUE’ (the default), and ‘as.factor.result’ is
‘FALSE’, then the result will be coerced to numeric if all
values in the result are numerals-i.e., represent numbers.
as.factor.result
по умолчанию TRUE
, поэтому результат всегда будет фактором, независимо от того, что вы установили для as.numeric.result
. Чтобы получить желаемое поведение, установите оба параметра as.factor.result = FALSE
и as.numeric.result = TRUE
:
> recode(df$value, "'A'=1; 'B'=2; 'C'=3;", as.numeric.result=TRUE,
as.factor.result = FALSE)
[1] 1 2 3 1