一种方法是将字符串的每个部分提取到单独的变量中,然后使用这些变量来计算结果。
library(tidyverse)
data %>%
as_tibble() %>%
extract(variable, c("x"), "^(\\d+) ", remove = FALSE) %>%
extract(variable, c("y", "z"), "(\\d+)/(\\d+)", remove = FALSE) %>%
mutate_at(vars(x, y, z), as.numeric) %>%
mutate(result = if_else(is.na(x), 0, x) + if_else(is.na(y / z), 0, y / z)) %>%
select(variable, result)
#> # A tibble: 11 x 2
#> variable result
#> <chr> <dbl>
#> 1 0.0000
#> 2 0.0000
#> 3 7 1/4 INCHES 7.2500
#> 4 1/4 INC 0.2500
#> 5 9/16 INCH 0.5625
#> 6 1 3/4 INCHES 1.7500
#> 7 0.0000
#> 8 1 13/16 INCHES 1.8125
#> 9 20 INCHES 20.0000
#> 10 0.0000
#> 11 0.0000
answer
还展示了处理此类问题的几种方法