如何使用R创建新的ID列

如何使用R创建新的ID列,r,R,我正在处理csv文件,并试图为没有整个csv文件id的行分配新id what I have I would like to create NewID Number Id number -------> NewId number 1245 1245 1367 1367 NoID NoID_1 1468

我正在处理csv文件,并试图为没有整个csv文件id的行分配新id

what I have          I would like to create NewID Number
Id number   ------->      NewId number
1245                        1245
1367                        1367
NoID                        NoID_1
1468                        1468
NoID                        NoID_2
NoID                        NoID_3
1456                        1456

一个选项是转换为
数值
,以查找非数值的

i1 <- is.na(as.numeric(df1[["ID number"]]))
df1$NewId <- df1[["ID number"]]
df1$NewId[i1] <- paste0(df1[["ID number"]][i1], "_", seq(sum(i1)))

i1谢谢@akrun。它非常有用。它可以工作,但新的Id顺序不准确。e、 g NoID-->1245\u 1,但我想成为NoID\u 1。@Dreamer\u 19谢谢,我之前没有测试。有一些打字错误。更正。请查收
i1 <- !grepl("^\\d+$", df1[["ID number"]]) 
df1 <-structure(list(`ID number` = c("1245", "1367", "NoID", "1468", 
"NoID", "NoID", "1456")), class = "data.frame", row.names = c(NA, 
-7L))