您好,登錄后才能下訂單哦!
這篇文章主要講解了“R語言導入與處理XML格式數據的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“R語言導入與處理XML格式數據的方法”吧!
XML是一種可擴展標記語言,它被設計用來傳輸和存儲數據。XML是各種應用程序之間進行數據傳輸的最常用的工具。它與Access,Oracle和SQL Server等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力,例如:數據索引、排序、查找、相關一致性等,它僅僅是存儲數據。事實上它與其他數據表現形式最大的不同是:它極其簡單,這是一個看上去有點瑣細的優點,但正是這點使它與眾不同。
針對XML格式數據,R語言XML包可以對其進行數據導入與處理,詳見下面的案例說明。
直接輸入一段標記語言文本,使用XML包解析。
library(XML) tt = '<x> <a>text</a> <b foo="1"/> <c bar="me"> <d>a phrase</d> </c> </x>' doc = xmlParse(tt) xmlToList(doc) # use an R-level node representation doc = xmlTreeParse(tt) xmlToList(doc)
導入已有的xml格式數據并處理,本案例用到的是手機通訊錄xml數據,按如下步驟操作:
#讀取xml格式數據并解析 xmlfile=xmlParse(file.choose(),encoding="UTF-8") class(xmlfile) #形成根目錄列表數據 xmltop = xmlRoot(xmlfile) class(xmltop) #查看類 xmlName(xmltop) #查看根目錄名 xmlSize(xmltop) #查看根目錄總數 xmlName(xmltop[[1]]) #查看子目錄名 # 查看第一個子目錄 xmltop[[1]] # 查看第二個子目錄 xmltop[[2]] #子目錄節點 xmlSize(xmltop[[1]]) #子目錄節點數 xmlSApply(xmltop[[1]], xmlName) #子目錄節點名 xmlSApply(xmltop[[1]], xmlAttrs) #子目錄節點屬性 xmlSApply(xmltop[[1]], xmlSize) #子目錄節點大小 #查看第一個子目錄的第一個節點 xmltop[[1]][[1]] #查看第一個子目錄的第二個節點 xmltop[[1]][[2]] #第二個子目錄 xmltop[[2]][[1]] xmltop[[2]][[2]] xmltop[[1]][[3]][[1]][[1]] #查看聯系人電話 xmltop[['Contact']][['PhoneList']][[1]][[1]] #第二種方式 getNodeSet(xmltop, "//Contact/PhoneList")[[1]][[1]][[1]] #第三種方式 xmltop[[1]][[3]][[1]][[1]] = 13717232323 #更改聯系人電話 xmltop[[1]][[1]][[1]]= "zhangsan "#更改聯系人姓名 #保存 saveXML(xmltop, file="out.xml",encoding="UTF-8")
按如下步驟操作:
xmlToDataFrame(xmlfile) #第一種方式,直接用xmlToDataFrame()函數 library("plyr") #第二種方式,數據格式處理專用包plyr MyContact=ldply(xmlToList(file.choose()), data.frame) #先轉成list,再轉dataframe View(MyContact) # 查看聯系方式 MyContact[,c("Name" ,"PhoneList.Phone.text")] # 聯系方式保存 write.csv(MyContact, "MyContact.csv", row.names=FALSE)
感謝各位的閱讀,以上就是“R語言導入與處理XML格式數據的方法”的內容了,經過本文的學習后,相信大家對R語言導入與處理XML格式數據的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。