我正在解析一堆具有類似表類數據的XML,並希望將它們連接到一個data.table中,以便隨後執行我的計算。我使用XML
包進行解析,有大約10,000個xml文件需要解析,每個文件裏面都有15-150行(確切的數字我事先不知道)。我目前的做法是:提高將數據追加到data.table的性能
sol <- data.table()
for(i in seq_len(length(xml_list))) {
i.xml <- xmlParse(xml_list[[i]]
i.component <- as.data.table(xmlToDataFrame(..))
sol <- rbindlist(list(i.component,sol),use.names=T,fill=T)
}
sol
此過程需要大約一小時的數據。有人可以指點我一種方法來大幅提高此解析的性能嗎?
我在想的可能的方式是:以某種方式預先爲更大的data.table分配內存,並追加行而不是在每一步中重新複製整個事物?或者,也許有更快的XML解析器,我可以使用?或者可能同時解析列表中的XML,而不是順序解析(因爲它們都是一樣的)。
任何方式發佈其中一個XML文件,或者它是受限制的數據? – hrbrmstr
@hrbrmstr,不幸的是它受到了懲罰。關於結構,我後面的節點是樹的幾個步驟,我要查找的值是在標記內而不是屬性。還有一些列是字符串,有些是數字。如果您有更具體的問題,我可以嘗試提供更多細節。 –