Konversi Data XML Ke Dalam Bentuk List, Character dan Data Frame Menggunakan R


XML (eXtensible Markup Language) adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasastandar untuk melacak Internet.

XML (eXtensible Markup Language) digunakan dalam banyak aspek pengembangan web, sering dipakai untuk menyederhanakan penyimpanan dan pertukaran data. Berikut beberapa penggunaan umum XML untuk web sekarang ini:
  1. Pengembangan web
  2. Dokumentasi
  3. Pengembangan database
Pada postingan sebelumnya, saya telah berbagi tentang bagaimana cara mengkonversi data dalam format JSON ke dalam bentuk List, Character, dan Data Frame, dengan tujuan agar proses pengolahan data menjadi lebih mudah, karena data lebih terstruktur (dalam bentuk tabel).

Hampir serupa pada postingan sebelumnya, kali ini saya akan berbagi bagaimana cara melakukan konversi data dalam format XML ke dalam bentuk Data Frame, berikut cara yang dapat digunakan dalam program R:

Instal packages "XML" ke dalam program R, dan jalankan packages tersebut

library(XML) 

Pada contoh ini, saya akan menggunakan data gempa yang bersumber dari BMKG


Identifikasi URL letak data XML, dan lakukan proses parsing data ke dalam R dengan menggunakan perintah berikut:


gempa <- "http://data.bmkg.go.id/en_gempaterkini.xml"
doc <- xmlTreeParse(gempa, useInternalNodes = TRUE) 

Untuk mengubah data ke dalam bentuk List dapat digunakan perintah berikut:


gempa1<-xpathApply(doc, "//gempa", function(x) do.call(paste, as.list(xmlValue(x))))
gempa2<-xpathSApply(doc, "//gempa", function(x) strsplit(xmlValue(x), " ")) 

Kita dapat menggunakan tampilan data List sesuai dengan yang kita inginkan, adapun tampilan yang terbentuk pada "gempa1" adalah seperti berikut:



Adapun tampilan data List pada "gempa2" adalah sebagai berikut:



Selain dengan menggunakan perintah diatas, perintah untuk melakukan konversi XML dapat juga dilakukan dengan menggunakan perintah "xmlToList" seperti berikut:


xmlToList(gempa)

Sehingga tampilan data menjadi seperti berikut:

Untuk mengubah data XML ke dalam bentuk karakter dapat dilakukan dengan menjalankan perintah berikut:


gempa3<-xpathSApply(doc, "//gempa/child::*", xmlValue)

Berikut tampilan data dalam berntuk karakter yang telah dibuat:

Untuk mengubah data ke dalam bentuk Data Frame, gunakan packages "plyr", kemudian jalan perintah berikut:


data<ldply(xmlToList(gempa), function(x) { data.frame(x[!names(x)=="author"]) } )
data1<-ldply(xmlToList(gempa), data.frame)

Sehingga tampilan data menjadi seperti berikut:


Untuk menyimpan data tersebut ke dalam format csv, dapat dilakukan dengan menggunakan perintah "setwd", untuk mengaktifkan directory kerja, kemudian menggunakan perintah "write.csv" untuk menyimpan file dalam format csv.


setwd("D:/")
write.csv(MyData, file = "MyData.csv")

Sekian, semoga bermanfaat
Previous
Next Post »


:) :( hihi :-) :D =D :-d ;( ;-( @-) :P :o -_- (o) :p :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ $-) (y) (f) x-) (k) (h) cheer lol rock angry @@ :ng pin poop :* :v 100

Weekly