library(rvest)
urls <- c("https://www.r-bloggers.com", "https://www.stackoverflow.com")
docsFor <- list()
for(url in urls){
docsFor[[url]] <- read_html(url)
}
docsFor[[1]]
问题:我如何对 sapply/vapply 做同样的事情?
使用
sapply(urls, read_html)
将不起作用,因此我选择了 vapply
。如果我是对的,我会需要 externalptr(0)
之类的东西,但我不确定它是否存在。不起作用,因为没有
externalptr()
?:docs <- vapply(urls, read_html, FUN.VALUE = list(externalptr(0), externalptr(0)))
docs[[1]]
最佳答案
简而言之,如果你希望你的返回是一个列表,这是你的情况,然后使用 lapply
而不是 sapply
,它是 lapply
的包装器,它返回 vector
、 matrix
或 array
。
反对 vapply
的相同论点,因为它应该被使用,正如评论中适当提到的,仅用于简化对象。
因此,在这种情况下,最好的简洁解决方案是:
docsFor <- lapply(urls, read_html)
关于r - 将 sapply/vapply 用于 read_html,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58050470/