2014-12-18 6 views
2

У меня возникла повторяющаяся проблема при использовании функции перекодирования автомобиля. Если бы я воссоздать публично используемый пример (http://susanejohnston.wordpress.com/2012/07/18/find-and-replace-in-r-part-1-recode-in-the-library-car/)Перекодировка в пакете автомобилей возвращает неожиданный символ при перекодировании строк

и сделать:

y <- sample(c("Perch", "Goby", "Trout", "Salmon"), size = 10, replace = T) 
y1 <- recode(y, "c("Perch", "Goby") = "Perciform" ; c("Trout", "Salmon") = "Salmonid"") 

возвращает:

Error: unexpected symbol in "y1 <- recode(y, "c("Perch"

Я бегу R 3.1.0 и используя car_2.0-22

Я предполагаю, что автор страницы смог завершить свое действие, но я не могу его воссоздать, и это та же проблема, что и у меня в моих данных. Мысли?

+2

Это довольно забавно, что автор описал это как идиот-доказательство. –

+0

@MrFlick Не ложь, ошибка. Ошибка в ссылке исправлена. Спасибо, что пометили. – susjoh

ответ

3

Я был автором документа Wordpress - код неправильный и спасибо за то, что пометили проблему.

Проблема в том, что синтаксис car :: recode требует отдельной цитаты, а не двойной кавычки (или см. Комментарий от @MrFlick ниже на другом приемлемом синтаксисе).

y1 <- recode(y, 'c("Perch", "Goby") = "Perciform" ; c("Trout", "Salmon") = "Salmonid"') 
y1 

[1] "Perciform" "Salmonid" "Perciform" "Salmonid" "Salmonid" "Perciform" "Salmonid" "Perciform" 
[9] "Salmonid" "Perciform" 

Должно работать.

+2

Это не так, что для этого требуется отдельная цитата, вам просто нужно закодировать свои кавычки. Вы можете включить двойные кавычки, ускользая от них: 'recode (y," c (\ "Perch \", \ "Goby \") = \ "Perciform \" ")', но, конечно, это грязно. Или вы можете обернуть синглы и удваивать. 'recode (y," c ('Perch', 'Goby') = 'Perciform' ")'. – MrFlick

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

  • Нет связанных вопросов^_^