更改字符串中的数字r

时间:2019-03-21 15:05:41

标签: r

我有一个巨大的数据框。但是,我有相似的ID,这些是不同的观察结果。我想做的是更改列ID中的最后/最后两位数字。因此,对于第5行中的ID alnfru_00001,应为alnfru_00006,依此类推。即使在使用其他ID的情况下,也可以在整个数据帧中看到该序列。谁能提供帮助?

{{1}}

1 个答案:

答案 0 :(得分:0)

假设您希望尾随数字来跟踪行号(这个问题有点不清楚),您可以这样做:

dat <- data.frame(PFT = rep("alnfru", 10000))
head(dat)
#>      PFT
#> 1 alnfru
#> 2 alnfru
#> 3 alnfru
#> 4 alnfru
#> 5 alnfru
#> 6 alnfru

给出一列,该列编码ID导致的解决方案是:

dat$ID <- paste(dat$PFT, sprintf("%05d", 1:nrow(dat)), sep = "_")
dat[c(1:3, 9997:10000),]
#>          PFT           ID
#> 1     alnfru alnfru_00001
#> 2     alnfru alnfru_00002
#> 3     alnfru alnfru_00003
#> 9997  alnfru alnfru_09997
#> 9998  alnfru alnfru_09998
#> 9999  alnfru alnfru_09999
#> 10000 alnfru alnfru_10000

实际上,如果所有ID都以相同的前导代码开头,则您只需执行以下操作:

dat$ID <- paste("alnfru", sprintf("%05d", 1:nrow(dat)), sep = "_")