我有一个简短的问题,为什么下面的操作不起作用:
BAD ~ A + B + C # normal case
BAD ~ A + B^2 + C^2 # manipulated
解决方案是什么,谢谢!
答案 0 :(得分:1)
R公式界面不是为符号数学而设计的,而是为了建模。如果您想在模型中使用二次项,请学会使用poly
。
BAD ~ A + poly(B, 2) + poly(C,2)
抵制se I(C^2)
的诱惑,因为这会导致糟糕的统计推断。有几个用于符号操作"方程式的包#34; polynom
是我记忆中的名字。外部符号数学包Yacas还有RYacas
包装器。
如果您开始使用模型组件的字符值,那么这会将这些片段组合为文本,最后转换为公式类:
> y = "Y"
> preds <- LETTERS[1:3]
> as.formula( paste( y,"~", paste( paste0( "poly(",preds,",",2, ")"), collapse="+") ))
Y ~ poly(A, 2) + poly(B, 2) + poly(C, 2)
我在试图采取双面&#34;公式和polyize
它。也许我会自己提出这个问题。