Two tidyverse alternatives (using sgibb's example data):
tibble::rowid_to_column(d, "ID")
which gives:
ID V1 V2
1 1 23 45
2 2 45 45
3 3 56 67
Or:
dplyr::mutate(d, ID = row_number())
which gives:
V1 V2 ID
1 23 45 1
2 45 45 2
3 56 67 3
As you can see, the rowid_to_column
-function adds the new column in front of the other ones while the mutate
&row_number()
-combo adds the new column after the others.
And another base R alternative:
d$ID <- seq_along(d[,1])
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…