重新编码变量

时间:2018-07-21 20:09:31

标签: r vector dplyr recode

我正在尝试使用

重新编码一些变量
ppar$denr <- recode(ppar$q3c, 0 =c("1"), 1 =c("2"), 2 =c("5"), 3 = c("4", "11"), 4 = c("3","6", "7", "10", "12", "77"))

它返回此错误

Error: unexpected '=' in "ppar$denr <- recode(ppar$q3c, 0 ="

我尝试使用<-,但返回

 invalid (do_set) left-hand side to assignment

2 个答案:

答案 0 :(得分:0)

在R语法中,以数字开头的名称不是语法,必须加引号:

dplyr::recode(factor(1:5), "1" = "A")
#> [1] A 2 3 4 5
#> Levels: A 2 3 4 5

就数据而言,1是一个值,而不是名称,但是随着函数recode的结构化,它被用作名称。

侧面说明:数字因数不是一个好主意,因为因数在内部是整数,因此无论是在级别上还是在整数下进行运算,数字因数都会引起混淆。

答案 1 :(得分:0)

您也可以通过memisc软件包来做到这一点:

library(memisc)
memisc::recode(ppar$q3c,
         0 <- 1,
         1 <- 2,
         2 <- 5,
         3 <- c(4,11))

或开车:

library(car)
car::recode(ppar$q3c, "1 = 0; 2 = 1; 5 = 2; c(4,11) = 3")