繁体   English   中英

子集唯一对

[英]subsetting unique pairs

我有一个货币符号列表,但它们成对出现,并且不能违背它自己。 以下是一个例子:

ccy <- c("USD","EUR","JPY","GBP","CAD","AUD","NZD","CHF","NOK","SEK")
g <- expand.grid(ccy,ccy)
g <- g[g[,1]!=g[,2],]

美元兑欧元,正好是欧元兑美元的反转,或者欧元兑日元正好是日元兑欧元的反转,所以我想从data.frame消除这些。

是否有一种编程方式只从列表中获取唯一对?

使用combn()

combn(ccy, 2)
     [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9]  [,10] [,11] [,12] [,13] [,14] [,15] [,16]
[1,] "USD" "USD" "USD" "USD" "USD" "USD" "USD" "USD" "USD" "EUR" "EUR" "EUR" "EUR" "EUR" "EUR" "EUR"
[2,] "EUR" "JPY" "GBP" "CAD" "AUD" "NZD" "CHF" "NOK" "SEK" "JPY" "GBP" "CAD" "AUD" "NZD" "CHF" "NOK"
     [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25] [,26] [,27] [,28] [,29] [,30] [,31] [,32]
[1,] "EUR" "JPY" "JPY" "JPY" "JPY" "JPY" "JPY" "JPY" "GBP" "GBP" "GBP" "GBP" "GBP" "GBP" "CAD" "CAD"
[2,] "SEK" "GBP" "CAD" "AUD" "NZD" "CHF" "NOK" "SEK" "CAD" "AUD" "NZD" "CHF" "NOK" "SEK" "AUD" "NZD"
     [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45]
[1,] "CAD" "CAD" "CAD" "AUD" "AUD" "AUD" "AUD" "NZD" "NZD" "NZD" "CHF" "CHF" "NOK"
[2,] "CHF" "NOK" "SEK" "NZD" "CHF" "NOK" "SEK" "CHF" "NOK" "SEK" "NOK" "SEK" "SEK"

函数combn从输入向量生成长度为n所有唯一组合。

请参阅?combn以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM