使用R将数据框列数据转换为矩阵

Converting dataframe column data to matrix using R

我在数据框中有以下格式的数据

我想将这些数据转换成这样的矩阵,以便我可以使用 R

从中生成图表

请指教我该怎么做。此外,如果有任何包可用于生成图表

[![在此处输入图片描述][3]][3]

我们可以使用 base R 通过首先将列转换为 factor 并将 levels 指定为两列中的 unique 元素来执行此操作,然后只需执行 table

df1[] <- lapply(df1, factor, levels = un1)
m1 <- table(df1[2:1])
class(m1) <- "matrix"
names(dimnames(m1)) <- NULL
m1
#             angle traingle rightangle similarangle pythogoreous end
#angle            0        0          0            0            0   0
#traingle         1        0          0            0            0   0
#rightangle       0        1          0            0            0   0
#similarangle     0        1          1            0            0   0
#pythogoreous     0        0          0            1            0   0
#end              0        0          0            0            1   0

数据

df1 <- structure(list(children.startnode = c("angle", "traingle", "traingle", 
"rightangle", "similarangle", "pythogoreous"), children.endnode = c("traingle", 
"rightangle", "similarangle", "similarangle", "pythogoreous", 
"end")), .Names = c("children.startnode", "children.endnode"), row.names = c(NA, 
 -6L), class = "data.frame")

无需转换为矩阵,我们可以使用现有数据与 igraph 包,见示例:

library(igraph)

# convert to igraph object and plot
g <- graph_from_data_frame(df1)
plot(g)