Как создать сгруппированный список ребер из вектора в R - PullRequest
0 голосов
/ 30 августа 2018

По сути, я хотел бы сделать это , но с переменной группировки.

Например, у меня есть фрейм данных,

data.frame(group = c(1, 1, 2, 2, 2), value = c("A", "B", "C", "D", "E", "F"))

и я хочу преобразовать его в список ребер по группам:

from   to   group
A       B     1
C       D     2
D       E     2
E       F     2

Обратите внимание, что нет соединения B -> C, потому что они находятся в отдельных группах.

Кто-нибудь знает, как мне поступить об этом?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Использование data.table

library(data.table)
setDT(df1)[, .(from = value, to = shift(value, type = 'lead')), 
       by = .(group)][!is.na(to)]
#.   group from to
#1:     1    A  B
#2:     2    C  D
#3:     2    D  E
#4:     2    E  F
0 голосов
/ 30 августа 2018
library(tidyverse)
df%>%
   group_by(group)%>%
   mutate(from = value, to = lead(value), value = NULL)%>%
   na.omit()

  group from  to   
  <dbl> <fct> <fct>
1     1 A     B    
2     2 C     D    
3     2 D     E    
4     2 E     F    
...