>  기사  >  백엔드 개발  >  R 언어 XML 형식 데이터 가져오기 및 처리 - ShangFR

R 언어 XML 형식 데이터 가져오기 및 처리 - ShangFR

黄舟
黄舟원래의
2017-02-25 13:59:562403검색

데이터 파싱

XML은 데이터를 전송하고 저장하도록 설계된 확장 가능한 마크업 언어입니다. XML은 다양한 응용 프로그램 간의 데이터 전송에 가장 일반적으로 사용되는 도구입니다. Access, Oracle, SQL Server 등의 데이터베이스와는 다릅니다. 데이터베이스는 데이터 인덱싱, 정렬, 검색, 상관 일관성 등 더욱 강력한 데이터 저장 및 분석 기능을 제공합니다. 단지 데이터를 저장할 뿐입니다. 사실, 다른 데이터 표현과의 가장 큰 차이점은 이것이 매우 단순하다는 것입니다. 이는 사소해 보이는 장점이지만 이것이 독특합니다.

XML 형식 데이터의 경우 R 언어 XML 패키지에서 데이터를 가져오고 처리할 수 있습니다. 자세한 내용은 아래 사례 설명을 참조하세요.

사례 1

마크업 언어 텍스트를 직접 입력하고 XML 패키지를 사용하여 구문 분석합니다.

library(XML)

tt =
  &#39;<x>
<a>text</a>
<b foo="1"/>
<c bar="me">
<d>a phrase</d>
</c>
</x>&#39;
doc = xmlParse(tt)
xmlToList(doc)
# use an R-level node representation
doc = xmlTreeParse(tt)
xmlToList(doc)

사례 2

기존 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[[&#39;Contact&#39;]][[&#39;PhoneList&#39;]][[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")

xml 형식을 데이터프레임으로 지정합니다.

다음 단계를 따르세요.

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 형식 데이터 가져오기 및 처리 내용입니다. - ShangFR에 대한 자세한 내용을 확인하세요. PHP 중국어 홈페이지(www.php.cn)를 팔로우하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.