【发布时间】:2016-07-24 00:50:47
【问题描述】:
我想知道car包中recode函数的recodes参数是否允许使用等号(=)?
例如,以下失败:
library(car)
n <- c(0, 10, 20, 21, 60, 70)
r <- recode(n, " 0:20 = '<= 20' ; 20:70 = '> 20' ")
# Error in recode(n, " 0:20 = '<= 20' ; 20:70 = '> 20' ") :
# in recode term: 0:20 = '<= 20'
# message: Error in parse(text = strsplit(term, "=")[[1]][2]) :
# <text>:1:2: unexpected INCOMPLETE_STRING
# 1: '<
# ^
从<= 20 中删除= 可以正常工作:
r <- recode(n, " 0:20 = '< 20' ; 20:70 = '> 20' ")
table(r)
r
# < 20 > 20
# 3 3
鉴于我在将recodes 参数作为用户输入的上下文中使用recode,我希望任何解决方案都不需要显式转义字符,因为这会很麻烦。
我正在运行 R 版本 3.2.3 (2015-12-10) -- “木制圣诞树”
【问题讨论】:
-
为什么不稍后替换它呢?
r <- gsub( "~", "=", recode(n, " 0:20 = '<~ 20' ; 20:70 = '> 20' ") ) -
这和@Jianfeng 下面的回答很相似……