XML-файлы в R
XML расшифровывается как eXtensible Markup Language. XML предназначен для передачи и хранения данных.
Если вы не знакомы с XML, сначала можете обратиться к:Учебник по XML
Чтобы читать и записывать XML-файлы в R, необходимо установить пакет расширения. Вы можете ввести следующую команду в консоли R, чтобы установить его:
install.packages("XML", repos = "https://mirrors.ustc.edu.cn/CRAN/")
Проверьте, успешно ли прошла установка:
> any(grepl("XML",installed.packages()))
[1] TRUE
Создайте файл sites.xml. Поместите xml-файл в тот же каталог, что и тестовый скрипт. Код выглядит следующим образом:
Пример
Далее мы можем использовать пакет XML, чтобы загрузить данные из xml-файла:
Пример
library("XML")
# Задать имя файла
result <- xmlParse(file = "sites.xml")
# Вывести результат
print(result)
Подсчитайте количество XML-данных:
Пример
library("XML")
# Задать имя файла
result <- xmlParse(file = "sites.xml")
# Извлечь корневой узел
rootnode <- xmlRoot(result)
# Подсчитать количество данных
rootsize <- xmlSize(rootnode)
# Вывести результат
print(rootsize)
Выполнение приведённого выше кода даёт следующий результат:
[1] 3
Чтобы просмотреть данные узла, для определённой строки используйте[ ], для указанной строки и столбца используйте[[ ]]:
Пример
library("XML")
# Задать имя файла
result <- xmlParse(file = "sites.xml")
# Извлечь корневой узел
rootnode <- xmlRoot(result)
# Просмотреть данные 2-го узла
print(rootnode[2])
# Просмотреть 1-й элемент данных 2-го узла
print(rootnode[[2]][[1]])
# Просмотреть 3-й элемент данных 2-го узла
print(rootnode[[2]][[3]])
Выполнение приведённого выше кода даёт следующий результат:
$site <site> <id>2</id> <name>Example</name> <url>www.example.com</url> <likes>222</likes> </site> attr(,"class") [1] "XMLInternalNodeList" "XMLNodeList" <id>2</id> <url>www.example.com</url>
Преобразовать XML в список данных
Вывод приведённого выше кода представлен в формате XML. Мы можем использовать функцию xmlToList() для преобразования данных файла в формат списка, что делает чтение более удобным:
Пример
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] "Example" $site$url [1] "www.example.com" $site$likes [1] "222" $site $site$id [1] "3" $site$name [1] "Taobao" $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 Example www.example.com 222 3 3 Taobao www.taobao.com 333Другие расширения