使用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)
我在数据框中有以下格式的数据
我想将这些数据转换成这样的矩阵,以便我可以使用 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)