[英]How to convert data extracted from graphml to desired multiple columns in R
I have a large data as graphml format: 我有一个大数据作为graphml格式:
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<!-- property keys -->
<key id="key1" for="node" attr.name="country" attr.type="string" />
<key id="key2" for="node" attr.name="name" attr.type="string" />
<key id="key3" for="node" attr.name="year" attr.type="int" />
<graph id="G" edgedefault="undirected" parse.nodeids="canonical"
parse.edgeids="canonical" parse.order="nodesfirst">
<!-- graph properties -->
<!-- vertices -->
<node id="n0">
<data key="key1">USA</data>
<data key="key2">Walton </data>
<data key="key3">1990</data>
</node>
<node id="n1">
<data key="key1">France</data>
<data key="key2">Nizan </data>
<data key="key3">2003</data>
</node>
<node id="n2">
<data key="key1">UK</data>
<data key="key2">Peter</data>
<data key="key3">2008</data>
</node>
</graph>
</graphml>
I import it in R using: 我使用以下命令将其导入R中:
library(igraph)
My_graph <- read.graph("~/Desktop/data.xml", format="graphml")
Then convert it as data frame: 然后将其转换为数据帧:
data_fram <- get.data.fram(My_graph)
Now I would like to read data as multiple columns, and store them in txt file, as: 现在,我想将数据读取为多列,并将其存储在txt文件中,如下所示:
ID Country Name Year
0 USA Walton 1990
1 France Nizan 2003
2 UK Peter 2008
I appreciate any help. 感谢您的帮助。
Try: 尝试:
df <- get.data.frame(My_graph, what='vertices')
df$id <- as.numeric(gsub("[A-Za-z]+", "", df$id)) #if you need only the `numeric` part
row.names(df) <- NULL
df1 <- df[,c(4,1:3)]
df1
# id country name year
#1 0 USA Walton 1990
#2 1 France Nizan 2003
#3 2 UK Peter 2008
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.