我有一个示例数据框:
a <- c(1:5)
b <- c("Cat", "Dog", "Rabbit", "Cat", "Dog")
c <- c("Dog", "Rabbit", "Cat", "Dog", "Dog")
d <- c("Rabbit", "Cat", "Dog", "Dog", "Rabbit")
e <- c("Cat", "Dog", "Dog", "Rabbit", "Cat")
f <- c("Cat", "Dog", "Dog", "Rabbit", "Cat")
df <- data.frame(a,b,c,d,e,f)
我想在此数据框中重新编码某些变量(例如列c,d和e)。
到目前为止,我有:
library(car) # Contains recode function
survey[, 3:5] <- lapply(survey[ , 3:5] ,
FUN = function(x) recode(x, "Cat =0; Dog =1; Rabbit"=2)))
但这会给出错误信息。任何人都可以建议该函数应该如何阅读?
另外,如果我之前添加了额外的列,是否可以使用第一个和最后一个列来进行一系列的列?
即。 DF $ C:DF $ë
感谢任何帮助。
答案 0 :(得分:2)
您的代码中有几处错误。首先,在代码末尾有太多)
。接下来,对于您要更改的recode()
功能级别,应该在''
。如果添加参数as.factor.result=FALSE
,则结果将为数字。
df[,3:5]<-sapply(df[ , 3:5] ,
FUN = function(x) recode(x, "'Cat' =0; 'Dog' =1; 'Rabbit'=2",
as.factor.result=FALSE))