- 此问题在此处已有答案**:
Extracting numbers from vectors of strings(12个答案)
4天前关闭。
我有一个很大的数据集。ID列包含了很长很复杂的名称,我想用更简单的名称来替换这些值名称。它们的名称中都包含了一个连续的数字,所以我想用这个简单的数字来替换长值名称。但由于我有很多值名称要替换,当我为每个值写一行代码时,我得到了一段很长的代码。我正在寻找一种方法,用一个循环来减少这段代码,或者更好:以一种整齐的方式,这样我就不必写所有这些行,其中唯一不同的是连续的数字
下面是一些伪数据和我的管道替换值名称的简短版本:
library(tidyverse)
ID <- c('number04', 'number05', 'number06', 'number07', 'number08', 'number09', 'number10')
df <- tibble(ID)
df <- df |>
mutate(ID = if_else(str_detect(ID, pattern = "04"), "04", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "05"), "05", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "06"), "06", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "07"), "07", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "08"), "08", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "09"), "09", ID) |>
mutate(ID = if_else(str_detect(ID, pattern = "10"), "10", ID)
1条答案
按热度按时间c9x0cxw01#
一种方法是使用
sub()
:由reprex package(v2.0.1)于2023年2月9日创建
数据来自OP