R 在特定范围内重新编码变量
我有一个数据帧示例:R 在特定范围内重新编码变量,r,R,我有一个数据帧示例: 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
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)
a您的代码中有几个错误。首先,代码末尾有太多的)
。接下来,对于要更改的recode()
函数级别,应该在''
中。如果将参数添加为.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))
df[,3:5]如果你打算使用recode
你需要把猫、狗和兔子放在单引号中:…,FUN=function(x)recode(x,“'Cat'=0;'Dog'=1;'Rabbit'=2”)
。非常感谢@Didzis Elferts如果我想按名称引用这些列(不是一系列列),我该怎么做?i、 上例中的e.d和f?用df[,3:5]代替df[,c(“d”,“f”)]
df[,3:5]<-sapply(df[ , 3:5] ,
FUN = function(x) recode(x, "'Cat' =0; 'Dog' =1; 'Rabbit'=2",
as.factor.result=FALSE))