1

これをどう乗り越える??どうもありがとう!「車」ライブラリの使用

    data3$Edu=recode(data3$Edu, "'Incomplete secondary school: technical/ vocational type'=4")
Error in recode(data3$Edu, "'Incomplete secondary school: technical/ vocational type'=4") : 

  in recode term: 'Incomplete secondary school: technical/ vocational type'=4
  message: Error in parse(text = range[[1]][1]) : 
  <text>:1:1: unexpected INCOMPLETE_STRING
1: 'Incomplete secondary school
    ^
4

2 に答える 2

2

これらの特殊文字をgsub削除してから、recode

with(data3, recode(gsub("[/:]", "", Edu), 
     "'Incomplete secondary school technical vocational type' = 4"))

または、を新しいレベルにbase R割り当てるなどの方法を使用できますlevels

levels(data3$Edu)[levels(data3$Edu)=="Incomplete secondary school: technical/ vocational type"] <- 4
data3
#               Edu
#1                4
#2   Something else
#3 Some other thing
#4                4

アップデート

OP は複数の値を別のものに再コード化したいので、 を使用できますmatch。ここでは、1 番目と 3 番目levelを新しい値に変更しています。

levels(data3$Edu)[match(levels(data3$Edu)[c(1,3)], levels(data3$Edu) ) ] <- c(4, 1)
data3
#               Edu
#1                4
#2                1
#3 Some other thing
#4                4

OPがすべてのレベルをいくつかの数値に変更したい場合は、factorレベルを数値に直接強制することができます

as.integer(data3$Edu)
#[1] 1 3 2 1

値は、levels別の方法で設定することで変更できます。

as.integer(factor(data3$Edu, levels = levels(data3$Edu)[c(1,3,2)]))
#[1] 1 2 3 1

データ

data3 <- data.frame(Edu = c('Incomplete secondary school: technical/ vocational type', 
             'Something else',
             'Some other thing',
             'Incomplete secondary school: technical/ vocational type' 
              ))
于 2016-06-11T15:21:12.010 に答える
0

ところで、@akrun に感謝して、彼の提案と私の提案を組み合わせました。

data1$Edu=as.factor(gsub("[/:]","",as.character(levels(data1$Edu))[data1$Edu]))
data1$Edu=as.numeric(recode(data1$Edu, "'No formal education'=1;
                 'Incomplete primary school'=2;
                 'Complete primary school'=3;
                 'Incomplete secondary school technical vocational type'=4;
                 'Complete secondary school technical vocational type'=5;
                 'Incomplete secondary school university-preparatory type'=6;
                 'Complete secondary school university-preparatory type'=7;
                 'Some university-level education, without degree'=8;
                 'University - level education, with degree'=9"))

それが誰かを助けることを願っています。ありがとう@akrun再び!

于 2016-06-11T17:51:29.377 に答える