Составление списка связанных переменных в r - PullRequest
2 голосов
/ 13 октября 2019

У меня есть два столбца связанных переменных. Я хотел бы сделать их в объединенный список. Например, если фрейм данных выглядит следующим образом,

A    B
B    C
D    E

, который указывает, что A связан с B, B связан с C и т. Д.

Тогда я хотел бы новые списки с:

A, B, C
D, E

Любая помощь будет оценена. В идеале, используя R. Спасибо.

1 Ответ

0 голосов
/ 13 октября 2019

Возможно, было бы проще с пакетом, таким как igraph, но вот способ сделать это в базе R ...

df <- data.frame(X = c("A","B","D"), Y = c("B","C","E"), stringsAsFactors = FALSE)

nodes <- data.frame(node = unique(c(df$X, df$Y)), 
                    stringsAsFactors = FALSE)          #set of all unique values

nodes$group <- 1:nrow(nodes)                           #start with each in its own group

for(i in seq_len(nrow(df))){                           #loop through df
  rowvalues <- unlist(df[i, ])                         #linked pair in row i
  nodes$group[nodes$node %in% rowvalues] <- min(nodes$group[nodes$node %in% rowvalues])
                                                       #set to min group for linked pair
}

#end result is nodes$group containing unique values for each linked group

nodes
  node group
1    A     1
2    B     1
3    D     3
4    C     1
5    E     3

#groups can be extracted as a list with...

split(nodes$node, nodes$group)

$`1`
[1] "A" "B" "C"

$`3`
[1] "D" "E"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...