创建一列,其结果是 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))
我有一个很长的 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))