列的独特组合 [英] Unique combination of columns
本文介绍了列的独特组合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的简化数据集:
foo <- data.frame(var1= c(1:10), var2=rep(1:5,2),var3=rep(1:2,5),var4=rep(3:7,2) )
总共20个变量
foo
var1 var2 var3 var4 ... var20
1 1 1 1 3
2 2 2 2 4
3 3 3 1 5
4 4 4 2 6
5 5 5 1 7
6 6 1 2 3
7 7 2 1 4
8 8 3 2 5
9 9 4 1 6
10 10 5 2 7
我需要获得每个周期的3个变量及其总和的唯一组合
I need to get a unique combination of 3 variables and its sum for each period
即.像
var1var2var3 var1var3var4 var1var5var18 etc...
1 6 sum
2 6
3 7
4 10
5 11
6 9
7 10
8 13
9 14
10 17
请注意,var1var3var5与var3var1var5相同
note that var1var3var5 is the same as var3var1var5
推荐答案
按照@Chase的建议,combn
为您提供所需的东西:
As @Chase suggested, combn
gets you what you want:
nams <- apply( combn(colnames(foo),3), 2, function(z) paste(z, collapse = ''))
cols <- combn( ncol(foo), 3)
tripleSums <- apply( cols, 2, function(z) rowSums(foo[,z]))
colnames(tripleSums) <- nams
> tripleSums
var1var2var3 var1var2var4 var1var3var4 var2var3var4
[1,] 3 5 5 5
[2,] 6 8 8 8
[3,] 7 11 9 9
[4,] 10 14 12 12
[5,] 11 17 13 13
[6,] 9 10 11 6
[7,] 10 13 12 7
[8,] 13 16 15 10
[9,] 14 19 16 11
[10,] 17 22 19 14
这篇关于列的独特组合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文