构造与数据框中的交互项关联的列的方法

时间:2014-11-19 15:15:22

标签: r

我有一个包含6列的数据框

dat<-data.frame(x1,x2,x3,x4,x5,x6)

现在,我需要构建两个与交互项相关联的额外列,x1*x2x3*x4*x5如何在R中执行此操作。有些特殊注意事项,例如{{ 1}}是绝对的吗?

1 个答案:

答案 0 :(得分:1)

我想函数model.matrix完全符合您的要求。

例如,您可以拟合包含您感兴趣的变量和交互项的线性模型,然后从该拟合对象中提取模型矩阵

model.matrix(lm(drat ~ mpg * cyl + disp * hp * wt, data = mtcars))

因素需要明确编码为因子,请在下面找到一个例子

mtcars$cyl <- factor(mtcars$cyl)
model.matrix(lm(drat ~ mpg * cyl + disp * hp * wt, data = mtcars))

用于因子的默认对比是治疗编码。您可以使用下面的命令轻松地将其更改为总和编码(或其他编码:?contr.sum

contrasts(mtcars$cyl) <- contr.sum