R-将公式转换为字符串,反之亦然

时间:2020-10-02 08:43:30

标签: r formula

我对R中的某些奇怪行为感到困惑。当您将公式转换为字符串时,它将自动将公式的两部分分成单独的元素,如下所示:

#Convert formula to character string
FORMULA <- formula(y ~ a + b + c + d)
CHAR    <- as.character(FORMULA)
CHAR    
[1] "~"             "y"             "a + b + c + d"

但是,当您尝试转换回来时,您没有原始公式:

as.formula(CHAR)
~y

为什么会发生---即为什么R不能转换回您开始使用的公式?是否存在将字符串转换回公式的函数(或其他简单方法)?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以使用paste将原始公式拼凑在一起:

as.formula(paste(CHAR[2], CHAR[1], CHAR[3]))

y ~ a + b + c + d

答案 1 :(得分:1)

使用flights %>% filter(month == 1 & day == 1) 从公式到字符串,然后使用format朝另一个方向:

as.formula

此外,FORMULA <- formula(y ~ a + b + c + d) # from question format(FORMULA) ## [1] "y ~ a + b + c + d" as.formula("y ~ a + b + c + d") ## y ~ a + b + c + d 已经是一个公式。在已经是公式的对象上使用y ~ a + b + c + d毫无意义:

formula(...)