我正在尝试建立模型验证工具,在其中遵循正向选择方法,因此如果我们假设我的模型是

model <- y ~ a * b + c * d + e

我可以使用terms函数
attributes(terms(model))$term.labels

找出我模型中的所有预测变量,但是这种方法的问题是,交互项总是放在结果的末尾。我希望a:bab之后,而不是在结尾,并且c:d也是如此。有没有办法使交互条件保持顺序?

最佳答案

最简单的方法是在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"

要查找帮助文件,您将需要使用?terms.formula,因为?terms中未显示此方法。但是terms()将分派(dispatch)给公式方法。另外,labels()是从terms()获得术语标签的一种简便方法。

关于r - 公式处理(以适当的顺序放置交互项),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32216107/

10-10 02:50