2015-03-22 5 views
0

R, греметьR, погремушки, перекодировать

вот мои данные:

KK<- c('yes','no','yes','yes','dp') 
LL<- c('dp','no','yes','yes','no') 
II<- c('yes','dp','no','no','no') 
JJ<- c('yes','no','yes','yes','dp') 
AA<- c('no','dp','yes','yes','yes') 
MYDATA <- data.frame(KK,LL,II,JJ,AA);MYDATA 

Цель:

перекодировать 「нет」 к 「0,0」

recode 「y эс 」к「1,0」

перекодировки「дп」к「0,5」

Вопрос: как я могу перекодировать в г с пакетом「погремушкой」

ответ

1

Мы можем преобразовать 'MYDATA' в 'matrix', изменить класс 'character' на 'factor', указав метки на '0.5, 0, 1' в зависимости от порядка уровней и назначить его обратно в 'MYDATA' , [] гарантирует, что структура останется прежней.

MYDATA[] <- as.numeric(as.character(factor(as.matrix(MYDATA), 
          labels=c(0.5, 0, 1)))) 

MYDATA 
# KK LL II JJ AA 
#1 1.0 0.5 1.0 1.0 0.0 
#2 0.0 0.0 0.5 0.0 0.5 
#3 1.0 1.0 0.0 1.0 1.0 
#4 1.0 1.0 0.0 1.0 1.0 
#5 0.5 0.0 0.0 0.5 1.0 
+0

Спасибо за помощь. – fish

2

Предполагая, что вы ищете числовой результат:

(MYDATA == "dp")/2 + (MYDATA == "yes") 

дает:

 KK LL II JJ AA 
[1,] 1.0 0.5 1.0 1.0 0.0 
[2,] 0.0 0.0 0.5 0.0 0.5 
[3,] 1.0 1.0 0.0 1.0 1.0 
[4,] 1.0 1.0 0.0 1.0 1.0 
[5,] 0.5 0.0 0.0 0.5 1.0 
+0

Спасибо за помощь. – fish

Смежные вопросы