我有一个网站抓取一些数据列表。
这是我使用的代码(感谢David Jankoski的想法):
> `x %>%
html_nodes(".survey-row") %>%
html_attr("data-url")
list1 <- x
[1] "http://catalog.ihsn.org/index.php/catalog/7118"
[2] ...`
此元素已
`class "c('xml_document', 'xml_node')"`
我想将此列表(以及其他两个 - 与此非常相似)转换为数据框。 然而,我试过了
1。
list1.a <- as.data.frame(read_html(list1) %>% html_table(fill=TRUE))
和
2。
list.1.a <-do.call(rbind.data.frame, list1)
选项,但没有任何好结果,接收错误消息,如:
1. `Error in UseMethod("read_xml") :
no applicable method for 'read_xml' applied to an object of class "c('xml_document', 'xml_node')"
2. Error in xi[[j]] : object of type 'externalptr' is not subsettable `
我试图在这里找到建议,但我抓住的那些显然是他们不能工作的。如果我没有注意到一些合适的问题/答案,我会道歉。
同样,我想在数据框中转换它以更好地管理数据,并最终通过可能运行的命令将它们合并到另一个更大的数据框中。足够快(例如,没有任何Sys.sleep()
问题。
任何提示?
答案 0 :(得分:0)
尝试以下方法 -
list_df <- purrr::map(.x = list1, .f = tibble::as_data_frame)
list_df元素应对应于数据框。