Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从r中的数据库中的刮取字符串转换整数_R_String_Dataframe_Web Scraping - Fatal编程技术网

从r中的数据库中的刮取字符串转换整数

从r中的数据库中的刮取字符串转换整数,r,string,dataframe,web-scraping,R,String,Dataframe,Web Scraping,我正在努力寻找一种方法,将一个既有数字又有字母的字符串转换为R.I web抓取数据中的一个数字,现在我想将一列从字符串转换为一个数字。我的df的最后一列Clean.data$Drafted..tm.rnd.yr当前的内容是“亚利桑那州/1st/5th pick/2011”。我试图提取拾取编号,因此对于该示例,我只想提取“5”。有什么办法可以这样做吗?我对R相当陌生 library(rvest) library(magrittr) library(dplyr) library(purrr) ye

我正在努力寻找一种方法,将一个既有数字又有字母的字符串转换为R.I web抓取数据中的一个数字,现在我想将一列从字符串转换为一个数字。我的df的最后一列Clean.data$Drafted..tm.rnd.yr当前的内容是“亚利桑那州/1st/5th pick/2011”。我试图提取拾取编号,因此对于该示例,我只想提取“5”。有什么办法可以这样做吗?我对R相当陌生

library(rvest)
library(magrittr)
library(dplyr)
library(purrr)

years <- 2010:2020

urls <- paste0(
  'https://www.pro-football-reference.com/draft/',
  years,
  '-combine.htm')

combine.data <- map(
  urls,
  ~read_html(.x) %>% 
    html_nodes(".stats_table") %>% 
    html_table() %>% 
    as.data.frame()
) %>%
  set_names(years) %>% 
  bind_rows(.id = "year") %>% 
  filter(Pos == 'CB' | Pos == "S")

Clean.data <- combine.data[!rowSums(combine.data == "")> 0,]
库(rvest)
图书馆(magrittr)
图书馆(dplyr)
图书馆(purrr)
年%
as.data.frame()
) %>%
设置名称(年份)%>%
绑定行(.id=“year”)%>%
过滤器(位置=‘CB’|位置=‘S’)
Clean.data.0,]

这是到目前为止我的代码。

您可以使用正则表达式从数据中提取相关数字

Clean.data$pick_number <- as.integer(sub('.*?/\\s(\\d+).*', '\\1', 
                                     Clean.data$Drafted..tm.rnd.yr.))
Clean.data$pick_number

#  [1] 5 2 5 3 1 1 4 1 5 3 3 4 1 4 3 5 3 2 2 4 3 1 5 1 5 7 2
# [28] 5 3 7 1 2 3 4 7 7 2 3 3 5 3 5 7 3 2 2 5 3 5 4 4 6 1 3
# [55] 6 7 6 4 2 4 3 2 6 5 2 3 5 3 1 2 2 4 3 1 3 6 4 6 2 2 2
# [82] 4 1 6 3 3 4 5 2 1 3 3 7 3 1 2 1 4 4 5 3 1 2 4 3 2 7 3
#[109] 3 4 5 2 4 5 1 7 2 6 5 4 2 6 4 4 5 4
Clean.data$pick\u编号