gpt4 book ai didi

R生成所有可能的交互变量

转载 作者:行者123 更新时间:2023-12-04 10:42:10 24 4
gpt4 key购买 nike

我有一个带有变量的数据框,例如a,b,c,d

dat <- data.frame(a=runif(1e5), b=runif(1e5), c=runif(1e5), d=runif(1e5))

并希望在每个列之间生成所有可能的双向交互项,即:ab,ac,ad,bc,bd,cd。实际上,我的数据框有100列以上,因此我无法手动对其进行编码。什么是最有效的方法(请注意,我既不想同时使用ab也不想同时使用ba)?

最佳答案

您打算如何处理所有这些交互条件?有几种选择,最好取决于您要执行的操作。

如果要将交互传递给诸如lmaov的建模函数,那么它非常简单,只需使用.^2语法即可:

fit <- lm( y ~ .^2, data=mydf )

上面的代码将调用 lm并告诉它适合 mydf中的变量(不包括 y)的所有主要效果以及所有2种交互方式。

如果出于某种原因您确实要计算所有交互,则可以使用 model.matrix:
tmp <- model.matrix( ~.^2, data=iris)

这将包括用于拦截的列和用于主要效果的列,但是如果不需要它们,可以将其删除。

如果您需要与建模不同的东西,则可以使用@akrun在注释中提到的 combn函数。

关于R生成所有可能的交互变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31905221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com