如何在R中解析XML数据并导出保存为CSV文件
R语言解析XML并导出指定CSV文件的方法
前置依赖
你需要先安装两个R包:xml2用于解析XML结构,readr用于高效导出CSV文件,安装代码如下:
install.packages(c("xml2", "readr"))
完整操作代码
步骤1:加载包并导入XML数据
你可以选择读取本地XML文件,或者直接传入示例中的XML文本:
# 加载依赖包 library(xml2) library(readr) # 方式1:读取本地XML文件 # xml_doc <- read_xml("你的本地XML文件路径.xml") # 方式2:直接使用本次示例的XML文本 xml_text <- ' <patient id="559" weight="99" insulin_type="Novalog"> <glu_level> <event ts="18-01-2022 00:01:00" value="179"/> <event ts="18-01-2022 00:06:00" value="183"/> <event ts="18-01-2022 00:11:00" value="187"/> </glu_level> <finger_stick> <event ts="07-12-2021 01:03:20" value="107"/> <event ts="07-12-2021 01:08:04" value="107"/> <event ts="07-12-2021 05:08:14" value="191"/> <event ts="07-12-2021 11:21:49" value="586"/> </finger_stick> </patient> ' xml_doc <- read_xml(xml_text)
步骤2:提取指定节点的属性
定位到glu_level下的所有event节点,提取对应的ts和value属性:
# 定位所有glu_level下的event节点 glu_event_nodes <- xml_find_all(xml_doc, ".//glu_level/event") # 提取属性并组装为数据框 result_df <- data.frame( time = xml_attr(glu_event_nodes, "ts"), glu_level = xml_attr(glu_event_nodes, "value") )
步骤3:导出为CSV文件
write_csv(result_df, "glu_level_output.csv")
输出结果示例
最终得到的结构化表格如下:
| time | glu_level |
|---|---|
| 18-01-2022 00:01:00 | 179 |
| 18-01-2022 00:06:00 | 183 |
| 18-01-2022 00:11:00 | 187 |
内容的提问来源于stack exchange,提问作者Melih Aras
相关产品推荐
相关产品推荐

