创建一列,其结果是 R 中其他两列的随机匹配

Create a column whose outcome is the random match of two other columns in R

我有一个很长的 data.frame 看起来像这样

col1 <- c("a","b","c","d")
col2 <- c("E","F","G","H")
df <- data.frame(col1,col2)
  col1 col2
1    a    E
2    b    F
3    c    G
4    d    H

我想创建列“col3”,其结果是随机组合的乘积 col1 和 col2 中的元素。

例如我想要这样的东西

  col1 col2 col3
1    a    E a-G
2    b    F b-H
3    c    G c-E
4    d    H d-F

非常感谢任何帮助或指导。

一个dplyr选项可以是:

df %>%
 mutate(col3 = paste(sample(col1), sample(col2), sep = "-"))

  col1 col2 col3
1    a    E  c-E
2    b    F  b-H
3    c    G  a-F
4    d    H  d-G

data.table:

library(data.table)
setDT(df)
df[,col3:=paste(col1,'-',sample(col2))][]

   col1 col2  col3
1:    a    E a - F
2:    b    F b - E
3:    c    G c - H
4:    d    H d - G

base R:

df$col3 <- paste(df$col1,'-',sample(df$col2))