将高度从英尺(6-1)转换为英寸(73)英寸(R)
我正在尝试将一列英尺转换为英寸。通常它是简单的乘法,但是当格式分别为(5-10)或(6-2)的70和74英寸时,我对如何转换感到困惑。这是到目前为止我的代码。我正在尝试更改将高度从英尺(6-1)转换为英寸(73)英寸(R),r,dataframe,web-scraping,type-conversion,R,Dataframe,Web Scraping,Type Conversion,我正在尝试将一列英尺转换为英寸。通常它是简单的乘法,但是当格式分别为(5-10)或(6-2)的70和74英寸时,我对如何转换感到困惑。这是到目前为止我的代码。我正在尝试更改combine.data$Ht library(rvest) library(magrittr) library(dplyr) library(purrr) years <- 2010:2020 urls <- paste0( 'https://www.pro-football-reference.com/
combine.data$Ht
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")
库(rvest)
图书馆(magrittr)
图书馆(dplyr)
图书馆(purrr)
年%
as.data.frame()
) %>%
设置名称(年份)%>%
绑定行(.id=“year”)%>%
过滤器(位置=‘CB’|位置=‘S’)
将字符
列转换为数值
library(measurements)
f1 <- function(x) {
x1 <- as.numeric(sub("-.*", "", x))
x2 <- as.numeric(sub(".*-", "", x))
conv_unit(x1, "ft", "inch") + x2
}
combine.data$Ht <- f1(combine.data$Ht)
head(combine.data$Ht)
#[1] 69 71 72 71 69 74
f1('5-11')
#[1] 71
您可以将
Ht
列拆分为两个单独的列feet
和inches
,然后执行计算以英尺为单位计算高度
library(dplyr)
library(tidyr)
combine.data %>%
separate(Ht,c('feet', 'inches'), sep = '-', convert = TRUE, remove = FALSE) %>%
mutate(feet = 12*feet + inches) %>%
select(-inches)
这适用于6-0这样的数字,但不适用于5-11这样的数字。例如,5-11岁的球员应该是71英寸,而不是61.32英寸。有什么建议吗?@njmcd请查看更新。现在应该可以了
library(dplyr)
library(tidyr)
combine.data %>%
separate(Ht,c('feet', 'inches'), sep = '-', convert = TRUE, remove = FALSE) %>%
mutate(feet = 12*feet + inches) %>%
select(-inches)