English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
XMLは可拡張マークアップ言語(eXtensible Markup Language)の略で、データの送信と保存に設計されたものです。
R言語でXMLファイルを読み書きするには、拡張パッケージをインストールする必要があります。Rコントロール台に以下のコマンドを入力してインストールできます:
install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/)
インストールが成功したか確認する:
> any(grepl("XML",installed.packages())) [1】 TRUE
sites.xmlファイルを作成し、テストスクリプトと同じディレクトリに配置します。以下のコード:
<sites> <site> <id>1</id> <name>Google</name> <url>www.google.com</url> <likes>111</likes> </site> <site> <id>2</id> <name>w3codebox</name> <url>ja.oldtoolbag.com</url> <likes>222</likes> </site> <site> <id>3</id> <name>Taobao</name> <url>www.taobao.com</url> <likes>333</likes> </site> </sites>
次に、XMLパッケージを使用してXMLファイルのデータを読み込むことができます:
# XML パッケージをロード library("XML") # ファイル名を設定 result <- xmlParse(file = "sites.xml") # 結果の出力 print(result)
XMLデータ量の統計:
# XML パッケージをロード library("XML") # ファイル名を設定 result <- xmlParse(file = "sites.xml") # ルートノードの抽出 rootnode <- xmlRoot(result) # 統計データ量 rootsize <- xmlSize(rootnode) # 結果の出力 print(rootsize)
上記のコードを実行すると、出力結果が:
[1】 3
ノードデータを確認する、特定の行は[ ]を使用し、特定の行と列は[[ ]]を使用します:
# XML パッケージをロード library("XML") # ファイル名を設定 result <- xmlParse(file = "sites.xml") # ルートノードの抽出 rootnode <- xmlRoot(result) # 第 2 ノードデータ print(rootnode[2]) # 第 2 ノードの第 1 データ print(rootnode[[2]][[1]]) # 第 2 ノードの第 3 データ print(rootnode[[2]][[3]])
上記のコードを実行すると、出力結果が:
$site <site> <id>2</id> <name>w3codebox</name> <url>ja.oldtoolbag.com</url> <likes>222</likes> </site> attr(,"class") [1】 "XMLInternalNodeList" "XMLNodeList" <id>2</id> <url>ja.oldtoolbag.com</url>
以上のコードはすべて xml フォーマットの出力です。xmlToList() 函数を使用してファイルデータをリスト形式に変換することで、読み取りがより簡単になります:
# XML パッケージをロード library("XML") # ファイル名を設定 result <- xmlParse(file = "sites.xml") # リストに変換 xml_data <- xmlToList(result) print(xml_data) print("============================") # 第一行第二列のデータを出力 print(xml_data[[1]][[2]])
上記のコードを実行すると、出力結果が:
$site $site$id [1] "1" $site$name [1] "Google" $site$url [1] "www.google.com" $site$likes [1] "111" $site $site$id [1] "2" $site$name [1] "w3codebox" $site$url [1] "ja.oldtoolbag.com" $site$likes [1] "222" $site $site$id [1] "3" $site$name [1] "淘宝" $site$url [1] "www.taobao.com" $site$likes [1] "333" [1] "============================" [1] "Google"
XML ファイルデータはデータフレーム形式に変換できます。これにより、データ操作がより簡単になります:
# XML パッケージをロード library("XML") # xml ファイルデータをデータフレームに変換 xmldataframe <- xmlToDataFrame("sites.xml") print(xmldataframe)
上記のコードを実行すると、出力結果が:
id name url likes 1 1 Google www.google.com 111 2 2 w3codebox ja.oldtoolbag.com 222 3 3 淘宝 www.taobao.com 333