【发布时间】:2011-01-06 01:12:35
【问题描述】:
除了 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="")
}
}
【问题讨论】: