r语言 - 取pair数据集并将其定位为将焦点移动到左侧列的所有唯一值,并在右侧显示所有pair组合,无论方向如何



我有一个看起来像这样的数据集

ID|col 1 | col2
1 Apple   Banana
2 Apple   Pear
3 Orange  Apple
4 Apple   Lemon
5 Lemon   Banana
6 Pear    Lemon

我想把它变成这样

ID|Col 1| col 2
1  Apple  Banana
2  Apple  Pear
3  Apple  Orange
4  Apple  Lemon
5  Banana Apple
6  Banana Lemon
7  Pear   Apple
8  Pear   Lemon
9  Orange Apple
10  Lemon  Apple
11  Lemon  Banana
12  Lemon  Pear

顺序不重要,我就喜欢这样的安排。

更新* *

是否有办法保持对应的ID?

ID|Col 1| col 2
1  Apple  Banana
2  Apple  Pear
3  Apple  Orange
4  Apple  Lemon
1  Banana Apple
5  Banana Lemon
2  Pear   Apple
6  Pear   Lemon
3  Orange Apple
4  Lemon  Apple
5  Lemon  Banana
6  Lemon  Pear

Try withcomplete

library(dplyr)
library(tidyr)
df1 %>% 
complete(col1 = unique(col1), col2 = unique(col2)) %>% 
filter(col1 != col2)

或与data.table

library(data.table)
setDT(df1)
rbind(df1, df1[, .(ID, col2 = col1, col1 = col2)])
ID   col1   col2
1:  1  Apple Banana
2:  2  Apple   Pear
3:  3 Orange  Apple
4:  4  Apple  Lemon
5:  5  Lemon Banana
6:  6   Pear  Lemon
7:  1 Banana  Apple
8:  2   Pear  Apple
9:  3  Apple Orange
10:  4  Lemon  Apple
11:  5 Banana  Lemon
12:  6  Lemon   Pear

最新更新