0

私はこのようなデータフレームを持っています

 aa   bb      
 --------
 a    1   
 a    2   
 a    3   
 b    4       
 b    5    
 b    1    

上記のデータ フレームに 'bb' から選択された要素のペアがあり、下のフレームのように見えるようにしたい

 aa   bb   cc   
 -------------
 a    1    2   
 a    1    3   
 a    2    3   
 b    4    5  
 b    4    1   
 b    5    1   

R 入力コード

d1 <- read.table(header = TRUE, sep = ";", text = 
"aa;bb
 a;1   
 a;2   
 a;3   
 b;4       
 b;5    
 b;1"   )
4

3 に答える 3

3

使用dplyr:

library(dplyr)

d1 %>% group_by(aa) %>%
       do(data.frame(t(combn(.[["bb"]], 2))))

Source: local data frame [6 x 3]
Groups: aa [2]

                  aa    X1    X2
              (fctr) (dbl) (dbl)
1                  a     1     2
2                  a     1     3
3                  a     2     3
4                  b     4     5
5                  b     4     1
6                  b     5     1
于 2015-12-16T15:43:17.647 に答える
2

ベースRのみ。

d2 <- t(do.call(cbind, tapply(d1$bb, d1$aa, function(x)combn(x, 2))))
rownames(d2) <- d1$aa
d2
#   [,1] [,2]
# a    1    2
# a    1    3
# a    2    3
# b    4    5
# b    4    1
# b    5    1
于 2015-12-16T16:52:27.777 に答える