1

我有一个示例数据框:

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$e

任何帮助将不胜感激。

4

1 回答 1

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))
于 2013-08-20T09:48:57.780 回答