r - 将向量上的函数调用的结果彼此附加到 r 中
问题描述
我有一个 1 列数据框,它的唯一列中有一系列 URL(可能是一个相同的向量)。为了这个示例,我们将保持每个 URL 相同:
urls<-as.data.frame(c("https://en.wikipedia.org/wiki/List_of_counties_in_California", "https://en.wikipedia.org/wiki/List_of_counties_in_California","https://en.wikipedia.org/wiki/List_of_counties_in_California"))
colnames(urls)<-"col1"
urls$col1<-as.character(urls$col1)
我还编写了一个从这些 url 中抓取表格的函数:
wiki_scrape <- function(x){
x_url <- x %>%
read_html() %>%
html_nodes(xpath='//*[@id="mw-content-text"]/div/table[2]') %>%
html_table() %>%
.[[1]] %>%
select(County)
return(x_url)
}
结果wiki_scrape(urls[1,1])
是一个包含 58 个观测值的数据框。我想wiki_scrape
在整个向量urls
(而不仅仅是urls[1,1]
)上以迭代方式运行此函数,并将每个结果数据帧附加到前一个结果数据帧。在此示例中,urls
列出了 3 个 url,因此我希望生成的数据帧长 174 个观察值(3*58 = 174,其中 58 是使用 抓取的一个数据帧的长度wiki_scrape
)。
解决方案
你可以做
library(dplyr)
map(urls$col1, wiki_scrape) %>% bind_rows()
# County
#1 Alameda County
#2 Alpine County
#3 Amador County
#4 Butte County
#5 Calaveras County
#6 Colusa County
#....
推荐阅读
- go - 意外的模块路径“github.com/sirupsen/logrus”
- r - 如何在 R 中的 plotly 中的 groupby 线图中添加图例?
- xcode - Xcode 构建问题 - 权限被拒绝
- c++ - 虽然没有满足我眼中的条件,但循环第三次循环,因此打印一个空字符串
- c - 布尔表达式 + 短路
- function - 更新表bsid的功能模块(字段:cession_kz)
- json - 这个 JSON 字符串的 unicode 是如何被错误编码的,我该如何反转它?
- hive - 从 CLI 插入查询的配置单元不起作用
- mysql - 如何在mysql查询中获取前一行值,它是一个带有别名的数学参数?
- php - VSCode中PHP文件中的不同输出类型