R中固定源的置换?

问题描述 投票:0回答:1

我有一个看起来像这样的数据集:

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将它们拉出来。

有没有人见过如何完成上述事情?预期结果是用于网络图形的边缘文件。

r permutation stringr
1个回答
1
投票

你可以使用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)
© www.soinside.com 2019 - 2024. All rights reserved.