Я пытаюсь использовать recode
в R (от car
пакет), и это не работает. Я читал в данных из .csv файла в названный кадр данных results
. Затем я заменяю значения в столбце Built_year
, согласно следующей логике.
recode(results$Built_year,
"2 ='1950s';3='1960s';4='1970s';5='1980s';6='1990s';7='2000 or later'")
Когда я проверяю results$Built_year
после выполнения этого шага это, кажется, работало. Однако это не хранит это значение и возвращается к его предыдущему значению. Я не понимаю почему.
Спасибо.
(в данный момент что-то идет не так, как надо, и я не вижу ни одного из значков для форматирования),
Вам нужно присвоить новой переменной.
Рассмотрим пример из recode
в пакете car
R> x <- rep(1:3, 3)
R> x
[1] 1 2 3 1 2 3 1 2 3
R> newx <- recode(x, "c(1,2)='A'; else='B'")
R> newx
[1] "A" "A" "B" "A" "A" "B" "A" "A" "B"
R>
Кстати, пакет называется car, а не cars.
car::recode
(и сам R) не работает как функция SPSS Recode, поэтому если вы применяете преобразование к переменной, вы должны присвоить его переменной, как сказал Дирк. Я не использую car::recode
, хотя это довольно просто... учитесь работать с факторами... как я вижу, вы можете применить as.numeric(results$Built_year)
и получить тот же эффект. ИМХО, использование car::recode
в этом манере тривиально. Вы ведь хотите только изменить фактор на числовой, верно... Ну, вы будете удивлены, когда увидите это:
> x <- factor(letters[1:10])
> x
[1] a b c d e f g h i j
Levels: a b c d e f g h i j
> mode(x)
[1] "numeric"
> as.numeric(x)
[1] 1 2 3 4 5 6 7 8 9 10
И, парень, мне нравится отвечать на вопросы, в которых упоминаются факторы... =) Познакомьтесь с факторами, и вы увидите магию "перекодировки" в R! =) Сайт Роба Кабакоффа - хорошая отправная точка.