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/