公式处理(按正确顺序放置交互项)

dev*_*mer 6 r formula

我正在尝试建立一个模型验证工具,我正在遵循前向选择方法,所以如果我们假设我的模型是

model <- y ~ a * b + c * d + e
Run Code Online (Sandbox Code Playgroud)

我可以使用这个terms功能

attributes(terms(model))$term.labels
Run Code Online (Sandbox Code Playgroud)

找出我模型中的所有预测变量,但这种方法的问题是交互项总是放在结果的末尾.我想a:b是后a和b,而不是在最后,和同样为c:d.有没有办法保持订单与交互条款?

Ric*_*ven 9

最简单的方法是使用keep.order在terms.formula()

model <- y ~ a * b + c * d + e
labels(terms(model, keep.order = TRUE))
# [1] "a"   "b"   "a:b" "c"   "d"   "c:d" "e"  
Run Code Online (Sandbox Code Playgroud)

要查找帮助文件,您需要使用?terms.formula,因为此方法未显示?terms.但terms() 会派遣到公式方法.此外,labels()是从中获取术语标签的简便方法terms().