【问题标题】:Recode in Car package returns unexpected symbol when recoding strings重新编码字符串时,Car 包中的重新编码返回意外符号
【发布时间】:2014-12-18 22:19:22
【问题描述】:

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

返回:

错误:"y1 中出现意外符号

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

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

【问题讨论】:

  • 作者将此描述为白痴,这很有趣。
  • @MrFlick 不是谎言,是错误。链接错误已修复。感谢举报。

标签: r r-car recode


【解决方案1】:

我是 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"

应该可以。

【讨论】:

  • 它不需要单引号,您只需要正确编码引号即可。您可以通过转义双引号来包含双引号:recode(y, "c(\"Perch\", \"Goby\") = \"Perciform\"") 但当然这很麻烦。或者你也可以包装单打和双打。 recode(y, "c('Perch', 'Goby') = 'Perciform'").
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 2016-07-24
相关资源
最近更新 更多