我有一个看起来像这样的数据集:
col1 | col2
a | b c d
e | f g h i j
我知道gtool的排列函数:
p <- (permutations(n=4,r=2,v=df),repeats.allowed=FALSE)
可以在有或没有重复的情况下提取不同的排列,但是我需要第1列留在原位,以便预期的结果是:
a b
a c
a d
e f
e g
e h
e i
e j
文档没有指定如何完成这样的事情。第二个向量是可变长度,我将使用str_extract_all将它们拉出来。
有没有人见过如何完成上述事情?预期结果是用于网络图形的边缘文件。
你可以使用tidyr::separate_rows
:
library(tidyr)
df %>%
separate_rows(col2, sep = " ")
col1 col2
1 a b
2 a c
3 a d
4 e f
5 e g
6 e h
7 e i
8 e j
数据:
df <- read.table(text = "col1 col2
a 'b c d'
e 'f g h i j'", header = TRUE, stringsAsFactors = FALSE)