gpt4 book ai didi

r - 在 R 数据框中生成交互变量

转载 作者:行者123 更新时间:2023-12-03 11:06:54 26 4
gpt4 key购买 nike

有没有办法——除了 for 循环——在 R 数据帧中生成新变量,这将是现有变量之间所有可能的双向交互?
即假设一个具有三个数值变量 V1、V2、V3 的数据框,我想生成以下新变量:

Inter.V1V2 (= V1 * V2) 
Inter.V1V3 (= V1 * V3)
Inter.V2V3 (= V2 * V3)

使用 for 循环的示例:
x <- read.table(textConnection('
V1 V2 V3 V4
1 9 25 18
2 5 20 10
3 4 30 12
4 4 34 16'
), header=TRUE)

dim.init <- dim(x)[2]
for (i in 1: (dim.init - 1) ) {
for (j in (i + 1) : (dim.init) ) {
x[dim(x)[2] + 1] <- x[i] * x[j]
names(x)[dim(x)[2]] <- paste("Inter.V",i,"V",j,sep="")

}
}

最佳答案

如果您有以下因素,这里有一个适合您的衬垫:

> model.matrix(~(V1+V2+V3+V4)^2,x)
(Intercept) V1 V2 V3 V4 V1:V2 V1:V3 V1:V4 V2:V3 V2:V4 V3:V4
1 1 1 9 25 18 9 25 18 225 162 450
2 1 2 5 20 10 10 40 20 100 50 200
3 1 3 4 30 12 12 90 36 120 48 360
4 1 4 4 34 16 16 136 64 136 64 544
attr(,"assign")
[1] 0 1 2 3 4 5 6 7 8 9 10

关于r - 在 R 数据框中生成交互变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2080774/

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