gpt4 book ai didi

r - 将 XML 数据转换为 R 中的数据框

转载 作者:行者123 更新时间:2023-12-05 05:55:04 25 4
gpt4 key购买 nike

我正在尝试将 XML 文件转换为数据框,但它只在列中显示很少的信息。

library(XML)

# LOADING TRANSFORMED XML INTO R DATA FRAME
doc <- xmlParse("SRR12545290.xml") # https://www.ncbi.nlm.nih.gov/sra/?term=SRR12545290
xmldf <- xmlToDataFrame(doc)
head(xmldf)

这只显示

 │EXPERIMENT                                                                                                               
1│SRX903458416S amplicon of salmon: distal intestinal digestaSRP279301Illumina 16S metagenomic targeted sequenci…
│SUBMISSION
1│SRA1118818
│STUDY
1│SRP279301PRJNA660116ArcticFloraDiet with or without functional feed ingredients were fed to salmon through fres…
│SAMPLE
1│SRS7285186SAMN15936598FW-Ref749906gut metagenome['Distal intestinal digesta of Atlantic salmon', 'Distal intestinal dige…
│Pool │RUN_SET
1│SRS7285186SAMN15936598│SRR12545290SRS7285186SAMN15936598

但是,我想获取 XML 文件中的所有信息。如地理位置、主机名等。

最佳答案

这是一种解析整个 XML(使用 xml2 包)以获取所有叶节点的值以及路径名的方法。
不确定这是否是您正在寻找的东西,但这是一个开始。

library(xml2)
library(dplyr)
doc<-read_xml("SRR12545290.xml")


#find all the nodes
allnodes <- doc %>% xml_find_all( '//*')

#find the leafs
leafs <- which( (allnodes %>% xml_children() %>% xml_length())==0)

#get the value in the leafs
value <- (allnodes %>% xml_text())[leafs]

#get the path to leaves to indentify the source
name <- (allnodes %>% xml_path())[leafs]

#clean up naming
name <- gsub("/EXPERIMENT_PACKAGE_SET/EXPERIMENT_PACKAGE/", "", name)

#final result
data.frame(name, value)

关于r - 将 XML 数据转换为 R 中的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69537548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com