【发布时间】:2019-08-19 05:15:01
【问题描述】:
我想找到矩阵中所有唯一两列组合中的值的总和(按行)。比如我想知道V1+V2,所以我不需要知道V2+V1,我也不需要V1+V1,V2+V2等等。
使用我在这里收集的一些信息,我已经能够创建一个循环函数来部分解决我的问题。它将第 1 到第 4 列中的值与第 2 到第 5 列中的值相加。
set.seed(3)
mydata<-as.data.frame(matrix(rexp(20, rate=.1), ncol=5))
for (i in 1:4) {
for (j in 2:5) {
Newcolname <- paste0(names(mydata)[i],"_",names(mydata)[j])
mydata[[Newcolname]] <- rowSums(mydata[,c(i,j)])
}
}
这段代码创建了我想要的,但信息太多。我得到了 16 个新列,其中第 1 到第 4 列的总和与第 2 到第 5 列配对。这包括我想排除的冗余信息。
理想情况下,我只想在 j>i 的情况下运行此函数,因此它应该使用以下总和创建 10 个新列:V1_V2、V1_V3、V1_V4、V1_V5、V2_V3、V2_4、V2_V5、V3_V4、V3_V5、V4_V5 .谢谢你的帮助。我是创建循环函数的新手。
【问题讨论】:
标签: r