为什么换行会导致在as.formula()中解析字符串时出现问题?

时间:2014-06-06 14:18:33

标签: r

我无法理解as.formula()在字符串中遇到换行符时的行为。例如,

ff <- y~1

fm1 <- paste0(deparse(ff),"+ x1 + x2")

as.formula(fm1)

按预期返回y ~ 1 + x1 + x2。但是如果在+之前字符串中有换行符,则as.formula()似乎默默地截断:

fm2 <- paste0(deparse(ff),"+x1
              +x2")

as.formula(fm2)

fm2作为y ~ 1 + x1返回,不包含+ x2。在后一种情况下,fm2"y ~ 1+x1\n +x2"

是的,可以说'只是不要这样做',但这种行为非常意外,没有错误,警告或消息。

\n切断字符串后是否有一些内部解析逻辑,更重要的是,这是在任何地方记录的吗?

1 个答案:

答案 0 :(得分:0)

尝试:

x <- eval(parse(text=paste0(deparse(ff),"+x1+x2")))

结果已经可以用作模型公式,而不需要as.formula(x)