我无法理解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
切断字符串后是否有一些内部解析逻辑,更重要的是,这是在任何地方记录的吗?
答案 0 :(得分:0)
尝试:
x <- eval(parse(text=paste0(deparse(ff),"+x1+x2")))
结果已经可以用作模型公式,而不需要as.formula(x)