【发布时间】:2021-08-27 17:23:49
【问题描述】:
我不确定我是否正确地表达了我的问题,所以让我举一个简化的例子:
给定一个数据集如下:
dat <- data_frame(X = c("A", "B", "B", "C", "A"),
Y = c("B", "A", "C", "A", "C"))
如何计算pair 变量,以便它表示给定行中X 和Y 中的任何内容但不会产生重复项,如下所示:
dat$pair <- c("A-B", "A-B", "B-C", "C-A", "C-A")
dat
# A tibble: 5 × 3
X Y pair
<chr> <chr> <chr>
1 A B A-B
2 B A A-B
3 B C B-C
4 C A C-A
5 A C C-A
我可以计算与 paste0 的配对,但它会引入我想避免的重复项(C-A 与 A-C 相同):
> dat <- mutate(dat, pair = paste0(X, "-", Y))
> dat
# A tibble: 5 × 3
X Y pair
<chr> <chr> <chr>
1 A B A-B
2 B A B-A
3 B C B-C
4 C A C-A
5 A C A-C
【问题讨论】:
-
您的数据是否仅包含大写字母和每个元素中的一个字母?
-
@blazej 顺序重要吗?例如,用
A-C和A-C代替C-A和C-A是否可以接受? -
@Peter,不 - 它实际上更长的字符串与多个聊天者
-
@Ben 是的,没关系