【发布时间】:2018-03-30 21:21:10
【问题描述】:
我想为我的每个节点创建一个包含 1 行的 data_frame。
library(tidyverse)
library(xml2)
nodeToDf <- function(theNode) {
# More complex stuff here. But in the end it returns a data_frame with 1 row
xml_attrs(theNode) %>%
map_dfr(~as.list(.))
}
data <- read_xml("<root><book title='First' pages='100'/><book title='Second' pages='100'/><book title='Third' pages='100'/></root>")
books <- xml_find_all(data, "//book")
map_df(books,nodeToDf)
# Error in bind_rows_(x, .id) : Argument 1 must have names
所以我的问题是如何通过为每个节点调用 nodeToDf 来为 myNodeSet 中的每个节点获取一个包含 1 行的 data_frame?
【问题讨论】:
-
您能否分享一些示例输入以使其可重现?另外,最好提及您正在使用的软件包。
xml和xml2有不同的接口,可能还有其他处理 XML 的包。而且我可以告诉你正在使用purrr,但是很高兴再次说出它。 -
或者更好的是包括所有
library行。 -
是的,对不起。现在应该可以执行了
-
bind_rows(nodeToDf(books[1]), nodeToDf(books[2]), nodeToDf(books[3]))给出了想要的结果,但我现在不知道会有多少节点