gpt4 book ai didi

xml - 在 R 中,如何从 XML 文件中提取两个值,遍历 5603 个文件并写入表

转载 作者:数据小太阳 更新时间:2023-10-29 02:21:58 27 4
gpt4 key购买 nike

由于我是 R 的新手,我正在尝试学习如何从 XML 文件中提取两个值并循环遍历我工作目录中的 5603 个其他(小的,<2kb)XML 文件。

我已经阅读了很多关于“循环”的主题,但发现这相当令人困惑 - 特别是因为循环 XML 文件似乎与循环其他文件不同,对吗?

我正在使用 XML 结构的在线数据。

对于每个 XML 文件,我想将“ZipCode”和“AwardAmount”写入表格。

运行以下代码我确实检索了 ZipCode 和 AwardAmount,但仅限于第一个文件。如何编写适当的循环并将其写入表?

xmlfiles=list.files(pattern="*.xml")
for (i in 1:length(xmlfiles)){
doc= xmlTreeParse("xmlfiles[i]", useInternal=TRUE)
zipcode<-xmlValue(doc[["//ZipCode"]])
amount<-xmlValue(doc[["//AwardAmount"]])
}

有人有什么建议吗?

最佳答案

这可能对您有用。我摆脱了 for 循环并使用 sapply

xmlfiles <- list.files(pattern = "*.xml")
txtfiles <- gsub("xml", "txt", xmlfiles, fixed = TRUE)

txtfiles 是一组新文件名,用作每次运行的输出文件。

sapply(seq(xmlfiles), function(i){

doc <- xmlTreeParse(xmlfiles[i], useInternal = TRUE)
zipcode <- xmlValue(doc[["//ZipCode"]])
amount <- xmlValue(doc[["//AwardAmount"]])
DF <- data.frame(zip = zipcode, amount = amount)
write.table(DF, quote = FALSE, row.names = FALSE, file = txtfiles[i])

})

如果您在运行时遇到问题,请告诉我。

关于xml - 在 R 中,如何从 XML 文件中提取两个值,遍历 5603 个文件并写入表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23377350/

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