2012-06-08 1 views
1

Примечание: заголовок может вводить в заблуждение. Если вы понимаете мою проблему и думаете о чем-то более описательном, - пожалуйста, измените ее.Перекодировать отсутствующие данные из поля символов

У меня странная ситуация, когда ответы от опроса - все символы, а не числовые. Кажется, что R, на самом деле это не нравится. Предположим, я задал вопрос:

Q. In what area do you work? 
East 
West 
Central 
North 
South 
None of the above 

Но респонденты были только с востока, запада и центра.

dat <- rep(c("East", "West", "Central"),100) 

Теперь, для целей презентации, очень важно, что я включаю на север, юг и ни один из выше, даже если они не являются ни. Однако факторизация этих элементов сложна.

Давайте попробуем:

fac1 <- factor(dat, labels=c("East","West","Central","North","South","None of the above")) 

Error in factor(dat, labels = c("East", "West", "Central", "North", "South", : 
    invalid labels; length 6 should be 1 or 3 

В общем, что я хотел бы сделать, это фактор этих данных с пропущенными значениями. Таким образом, когда я набираю что-то вроде summary (fac1), он показывает, что у них есть 0 ответов в этой категории.

Должен быть более простой способ сделать это!

ответ

3

Практически там. Вы должны использовать levels аргумент:

fac1 <- factor(dat, levels=c("East","West","Central","North","South","None of the above")) 
str(fac1) 
Factor w/ 6 levels "East","West",..: 1 2 3 1 2 3 1 2 3 1 ... 

Разница между levels и labels это:

  • levels определяет уровни фактора в данных
  • labels позволяет переименовать за один раз.

Например:

fac2 <- factor(
    dat, 
    levels=c("East","West","Central","North","South","None of the above"), 
    labels=c("E", "W", "C", "N", "S", "Other") 
) 
str(fac2) 
Factor w/ 6 levels "E","W","C","N",..: 1 2 3 1 2 3 1 2 3 1 ... 
+0

Должны быть впечатлены скоростью разума улья :) –

2

не эксперт, но это любая помощь?

fac1 <- factor(dat, levels = 
       c("East","West","Central","North","South","None of the above")) 
summary(fac1) 
Смежные вопросы