从公式中去除转换

Strip transformations from formula

我有一个包含转换的模型公式,其中一些可以嵌套。我想从公式中删除所有转换,只留下原始变量。

例如,

log10(y) ~ sin(log10(x)) + log(x1)

会变成:

y ~ x + x1

我想这可以用正则表达式来完成,但我想知道是否有一个预先存在的函数或者原始变量名是否存储在某个地方(例如,terms),从中公式可以重构。如果没有,那么在嵌套的情况下,也许有人可以帮助使用正则表达式...?

遗憾的是,转换公式之外的变量不是一个选项。

非常感谢。

有一个函数,all.vars,用于从公式中提取变量

all.vars( log10(y) ~ sin(log10(x)) + log(x1) )
# [1] "y"  "x"  "x1"