我正在尝试将列相乘并获取其名称。我有一个数据框:
v1 v2 v3 v4 v5
0 1 1 1 1
0 1 1 0 1
1 0 1 1 0
我正在尝试将每一列与其他列相乘,例如:
v1v2
v1v3
v1v4
v1v5
和 v2v3 v2v4 v2v5
等等,以及
v1v2v3
v1v2v4
v1v2v5
v2v3v4
v2v3v5
4 组合和 5 组合...如果有 n 列,则 n 组合。
我尝试在 while 循环中使用以下代码,但它不起作用:
i<-1
while(i<=ncol(data)
{
results<-data.frame()
v<-i
results<- t(apply(data,1,function(x) combn(x,v,prod)))
comb <- combn(colnames(data),v)
colnames(results) <- apply(comb,v,function(x) paste(x[1],x[2],sep="*"))
results <- colSums(results)
}
但它不工作。
样品输出..
如果 n=3
v1v2 v1v3 v2v3
0 0 1
0 0 1
0 1 0
和colsum
v1v2 v1v3 v2v3
0 1 2
然后
v1v2=0
v1v3=1
v2v3=2
这是我正在尝试的吗?