首页 > 解决方案 > 当我不使用 gsub 函数时,R 中的 recode 函数出现奇怪的 gsub 错误

问题描述

我经常在汽车库中使用 R 中的 recode() 函数。它工作得很好。但是,现在我收到一条奇怪的 gsub 错误消息,我不知道为什么,因为我没有在命令中调用 gsub() 函数。

前几天我使用 gsub() 函数将逗号拉出数值,但那是完全不同的东西。自从收到错误后,我指定了 car::recode() 函数并重新启动了 R 并仅重新加载了汽车库,但我仍然收到相同的错误。

下面的代码只是我的学生的一个简单的重新编码练习,现在我很困惑。有什么想法吗?

# enter grade data
> trust <- c("D","C","B","D","E","C","A","F","D","C")

# recode letters to numbers
> library(car)
> trust.r <- recode(trust(" 'A'=5; 'B'=4; 'C'=3; 'D'=2; 'E'=1; 'G'=0 "))
Error in gsub("\n|\t", " ", recodes) : argument "recodes" is missing, with no default

# Weird error.  Specify recode() from car library
> trust.r <- car::recode(trust(" 'A'=5; 'B'=4; 'C'=3; 'D'=2; 'E'=1; 'G'=0 "))
Error in gsub("\n|\t", " ", recodes) : argument "recodes" is missing, with no default

# Still weird error.  Flip " and ' symbols, just in case
> trust.r <- car::recode(trust(' "A"=5; "B"=4; "C"=3; "D"=2; "E"=1; "G"=0 '))
Error in gsub("\n|\t", " ", recodes) : argument "recodes" is missing, with no default

标签: rsyntax-errorgsubrecode

解决方案


我认为格雷戈尔的评论是正确的。如果您阅读该?recode页面,您会看到

用法
recode(var, recodes, as.factor, as.numeric=TRUE, levels)

参数
var数值向量、字符向量或因子。

重新编码重新编码规范的字符串:见下文。

所以,不要试图嵌入recodes内部var


推荐阅读