Creating adjacency matrix from collapsed row values in R
1
0
Entering edit mode
14 days ago
ARP • 0

Hi all,

I have a data frame with two columns representing one to many relationship values. Here is a snippet to generate the data as I have it:

get_genes <- function(i) paste0(sample(LETTERS[6:15], sample(3:7, 1), replace=TRUE)
                              , collapse = ";")
dummy_data <- data.frame(X1 = sample(LETTERS[1:5])
                       , X2 = sapply(1:5, get_genes)
                       )

Which would produce a dataframe similar to this:

  X1   X2
1  E   L;M;G
2  B   J;K;O
3  C   K;O;F
4  D   F;N;G;M
5  A   N;M

I need to transform that dataframe into an adjacency matrix like the example below. I have no idea how to go about it, though. I have played around with reshape2, but I can't find the right way to get what I need. Any solution will be greatly appreciated.

   X1 X2
1   E  L
2   E  M
3   E  G
4   B  J
5   B  K
6   B  O
7   C  K
8   C  O
9   C  F
10  D  F
11  D  N
12  D  G
13  D  M
14  A  N
15  A  M
adjacency reshape2 matrix r • 226 views
ADD COMMENT
1
Entering edit mode
14 days ago
ARP • 0

If anyone else comes across this issue, I found a way to solve it by creating a list from each of the vectors in X2 and using the solution proposed here. Code:

df <- data.frame(tibble(x1=dummy_data$X1, x2=strsplit(dummy_data$X2, ";")))
library("tidyverse")
t <- data.frame(unnest(df, c( "x2")))
ADD COMMENT

Login before adding your answer.

Traffic: 2061 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6