ホームページ  >  記事  >  バックエンド開発  >  R言語XML形式データのインポートと処理 - ShangFR

R言語XML形式データのインポートと処理 - ShangFR

黄舟
黄舟オリジナル
2017-02-25 13:59:562411ブラウズ

データ解析

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 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。