Перестановка с фиксированным источником в R? - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть набор данных, который выглядит следующим образом:

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, чтобы вытащить их.

Кто-нибудь видел способ для достижения вышеизложенного?Предполагаемый результат - это граничный файл, который будет использоваться для построения сетевого графика.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете использовать 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)
...