【发布时间】:2020-10-28 18:08:20
【问题描述】:
## for individual files
input_files <- list.files("U:/tmp", pattern = "[.]xml")
out <- list()
# loop for reading input and writing an output
for(i in 1:length(input_files)){
df0 <- fxml_importXMLFlat(input_files[i])
df1 <- fxml_toDataFrame(df0, siblings.of=1, elem.or.attr="elem",col.attr = elem.)
}
flatxml/fxml 库只是做了一些 xml 解析,所以忽略它。我正在做的是读取U/tmp 中的xml 文件,将它们放入一个列表中,然后对于该列表中的每个元素,运行flatxml 操作。
每个文件的输出是一行(在代码中显示为df0)。
如何获取每次迭代都会覆盖的输出 (df0),并将其存储为数据框或列表,每次运行该函数时都会增加一行?不是有一些 i+1 类型的逻辑可以做到这一点吗?
为了重现性,这是我阅读和处理的列表:
x
1 SAFETY1007L.xml
2 SAFETY1008L.xml
3 SAFETY10029.xml
4 SAFETY1000V.xml
在运行 importXMLFlat (df0) 之后,这是最终的数据帧 (df1)请注意它只有 1 行,因此最终数据表将有 4 行 - 每行列表中的元素inpt:
REPORTTIMESTAMP
AGENCYIDENTIFIER
AGENCYNAME
1 2019-06-02T07:08:01.751236 California Culver City Police Department
感谢您的任何想法。
【问题讨论】: