在R中生成高阶交互项

时间:2017-04-26 16:47:11

标签: r linear-regression

我希望有一种方法来生成一组通用变量的所有交互项的列表,直到指定的顺序。例如。变量x,y,z度3我希望代码列出所有交互,即x,x * y,x ^ 2 * y,x * y * z等。

我认为这应该可以使用多边形函数(因为这会以我上面描述的方式计算所有交互项):

#specify a dataframe with the desired variables- in this case x,y and z
tmp <- data.frame(x=runif(4),y=runif(4),z=runif(4))
#use the poly function to generate all interaction terms (up to order 3 in this example)
res<-poly(as.matrix(tmp),degree=3)
#use the colnames function to extract the power of x,y,z in each term 
termOrder<-colnames(res)

我陷入困境的时候,我认为应该可以将我的变量名x,y,z与termOrder结果给出的幂组合起来。例如。 1.0.0的第一列应映射到x ^ 1 * y ^ 0 * z ^ 0 = x,依此类推,但我不确定如何继续。

  1. 有没有比使用poly更合理的方法来实现这一目标?我注意到随机数的乘法是浪费 - 我只想生成一个字符串列表。
  2. 如果这是一种明智的方法,请您建议一种方法来结合termOrder结果和我的变量名称。

0 个答案:

没有答案