我有一个看起来像这样的数据集
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