[R] Creating a Data Frame from an XML
Gabor Grothendieck
ggrothendieck at gmail.com
Wed Jan 23 05:02:02 CET 2013
On Tue, Jan 22, 2013 at 3:11 PM, Adam Gabbert <adamjgabbert at gmail.com> wrote:
> Hello,
>
> I'm attempting to read information from an XML into a data frame in R using
> the "XML" package. I am unable to get the data into a data frame as I would
> like. I have some sample code below.
>
> *XML Code:*
>
> Header...
>
> Data I want in a data frame:
>
> <data>
> <row BRAND="GMC" NUM="1" YEAR="1999" VALUE="10000" />
> <row BRAND="FORD" NUM="1" YEAR="2000" VALUE="12000" />
> <row BRAND="GMC" NUM="1" YEAR="2001" VALUE="12500" />
> <row BRAND="FORD" NUM="1" YEAR="2002" VALUE="13000" />
> <row BRAND="GMC" NUM="1" YEAR="2003" VALUE="14000" />
> <row BRAND="FORD" NUM="1" YEAR="2004" VALUE="17000" />
> <row BRAND="GMC" NUM="1" YEAR="2005" VALUE="15000" />
> <row BRAND="GMC" NUM="1" YEAR="1967" VALUE="PRICLESS" />
> <row BRAND="FORD" NUM="1" YEAR="2007" VALUE="17500" />
> <row BRAND="GMC" NUM="1" YEAR="2008" VALUE="22000" />
> </data>
>
> *R Code:*
>
> doc< -xmlInternalTreeParse ("Sample2.xml")
> top <- xmlRoot (doc)
> xmlName (top)
> names (top)
> art <- top [["row"]]
> art
> **
This will get a data frame of character columns
> as.data.frame(t(xpathSApply(doc, "//row", xmlAttrs)), stringsAsFactors = FALSE)
BRAND NUM YEAR VALUE
1 GMC 1 1999 10000
2 FORD 1 2000 12000
3 GMC 1 2001 12500
4 FORD 1 2002 13000
5 GMC 1 2003 14000
6 FORD 1 2004 17000
7 GMC 1 2005 15000
8 GMC 1 1967 PRICLESS
9 FORD 1 2007 17500
10 GMC 1 2008 22000
--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com
More information about the R-help
mailing list