重新编码字符串时,Car包中的Recode返回意外符号

时间:2014-12-18 22:19:22

标签: r r-car recode

使用汽车包重新编码功能时,我遇到了一个反复出现的问题。如果我重新创建一个公开使用的示例(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"")

它返回:

  

错误:&#34; y1&lt; - recode(y,&#34; c(&#34; Perch&#34;

)中的意外符号

我正在运行R 3.1.0并使用car_2.0-22

我认为页面的作者能够完成他们发布的操作,但我无法重新创建它,这与我的数据中的问题相同。想法?

1 个答案:

答案 0 :(得分: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"

应该工作。