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 に答える