R 根据行中的图案添加后缀

R 根据行中的图案添加后缀,r,R,我有一个data.frame,看起来像这样: 从S1到S16的S*和xxx-是一些字母。 有没有办法在第一列上获得以下输出 i、 当有S1*时,我想在所有有S1*的行中添加-0作为后缀。 同样,当有S2*时,我想在所有有S2*的行中添加-1作为后缀,依此类推,直到S16*将有-15作为后缀。 提前谢谢我们用解析数字提取数字,减去1,然后用“名称”粘贴 df1$names <- with(df1, paste0(names, '-', readr::parse_number(names) -

我有一个data.frame,看起来像这样:

从S1到S16的S*和xxx-是一些字母。 有没有办法在第一列上获得以下输出

i、 当有S1*时,我想在所有有S1*的行中添加-0作为后缀。 同样,当有S2*时,我想在所有有S2*的行中添加-1作为后缀,依此类推,直到S16*将有-15作为后缀。
提前谢谢

我们用
解析数字
提取数字,减去1,然后用“名称”粘贴

df1$names <- with(df1, paste0(names, '-', readr::parse_number(names) -1))

df1$names
#[1] "S1_xxx-1-0" "S1_xxx-1-0" "S1_xxx-1-0" "S2_xxx-1-1" "S2_xxx-1-1" "S2_xxx-1-1"
数据
df1非常感谢您!太完美了!
      names           value1          Value2       
     S1_xxx-1-0        9.65            1.24
     S1_xxx-1-0        1.15            3.64
     S1_xxx-1-0        3.05            1.65
     S2_xxx-1-1        7.12            6.109
     S2_xxx-1-1        8.9             6.03
     S2_xxx-1-1        4.23            2.10
     .......        ......          ......
df1$names <- with(df1, paste0(names, '-', readr::parse_number(names) -1))

df1$names
#[1] "S1_xxx-1-0" "S1_xxx-1-0" "S1_xxx-1-0" "S2_xxx-1-1" "S2_xxx-1-1" "S2_xxx-1-1"
library(dplyr)
library(stringr)
df1 %>%
   mutate(names = str_c(names, readr::parse_number(names), sep = '-'))
df1 <- structure(list(names = c("S1_xxx-1", "S1_xxx-1", "S1_xxx-1", 
"S2_xxx-1", "S2_xxx-1", "S2_xxx-1"), value1 = c(9.65, 1.15, 3.05, 
7.12, 8.9, 4.23), Value2 = c(1.24, 3.64, 1.65, 6.109, 6.03, 2.1
)), class = "data.frame", row.names = c(NA, -6L))