首页 > 解决方案 > 在 R 中将高度从英尺 (6-1) 转换为英寸 (73)

问题描述

我正在尝试将一列英尺转换为英寸。通常它是简单的乘法,但是当格式分别为 70 和 74 英寸的 (5-10) 或 (6-2) 时,我对如何转换感到困惑。到目前为止,这是我的代码。我正在努力改变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")

标签: rdataframeweb-scrapingtype-conversion

解决方案


您可以将Ht列拆分为两个单独的列feetinches然后执行计算以计算高度(以英尺为单位)。

library(dplyr)
library(tidyr)

combine.data %>%
  separate(Ht,c('feet', 'inches'), sep = '-', convert = TRUE, remove = FALSE) %>%
  mutate(feet = 12*feet + inches) %>%
  select(-inches)

推荐阅读