Одной из идей является использование mutate_at
для применения функции замены к нужному столбцу следующим образом.Здесь я предоставил две функции замены: str_replace
и str_extract
, которые обе работают.mutate_at
, str_replace
и str_extract
все из пакета tidyverse
.
library(tidyverse)
# Create an example data frame
dat <- tibble(
A = c("1st", "2nd", "3rd"),
B = c("8th", "5th", "6th"),
C = c("7th", "101st", "23rd"),
Team = c("A", "B", "C")
)
# Solution 1: str_replace
dat %>%
mutate_at(vars(-Team), list(~as.integer(str_replace(., "st|nd|rd|th", ""))))
# # A tibble: 3 x 4
# A B C Team
# <int> <int> <int> <chr>
# 1 1 8 7 A
# 2 2 5 101 B
# 3 3 6 23 C
# Solution 2: str_extract
dat %>%
mutate_at(vars(-Team), list(~as.integer(str_extract(., "[0-9]*"))))
# # A tibble: 3 x 4
# A B C Team
# <int> <int> <int> <chr>
# 1 1 8 7 A
# 2 2 5 101 B
# 3 3 6 23 C