在r中一对多合并两列

Merge two colums one to many in r

d1 = c("2a", "3a") 

d2 = c("k1", "k2")

现在,我需要在一个新向量中创建一个列,比如 'vec',如下所示:

vec = c("2a-k1", "2a-k2", "3a-k1", "3a-k2")

基本上我只需要一个包含两列的每个组合的列。 合并选项没有帮助。任何意见是极大的赞赏。

我假设您的 vec 中有错字,因为您说“每个组合都来自两列”。如果是这样,那么这应该有效

x <- expand.grid(d1, d2, stringsAsFactors = FALSE)
x$d3 <- paste(x[,"Var1"], x[,"Var2"], sep = "-")


> x
  Var1 Var2    d3
1   2a   k1 2a-k1
2   3a   k1 3a-k1
3   2a   k2 2a-k2
4   3a   k2 3a-k2

有更优雅的方法可以使用 dplyr 等来做到这一点。