我有一个笼统的例子,有两列数据,一列是日期,另一列是日期的数字索引。我想能够重置索引都开始在1。 下面显示的视觉上,我想完成。谢谢你的帮助。
dateA = c("5/8/2020","5/8/2020", "5/8/2020", "5/9/2020","5/9/2020", "5/9/2020", "5/9/2020", "5/10/2020","5/10/2020", "5/10/2020", "5/11/2020")
varA = c(2,3,4,9,10,11,12,20,21,22,55)
data = data.frame(dateA,varA)
Oringal Index
dateA varA
5/8/2020 2
5/8/2020 3
5/8/2020 4
5/9/2020 9
5/9/2020 10
5/9/2020 11
5/9/2020 12
5/10/2020 20
5/10/2020 21
5/10/2020 22
5/11/2020 55
Reset Index
dateA varA
5/8/2020 1
5/8/2020 2
5/8/2020 3
5/9/2020 1
5/9/2020 2
5/9/2020 3
5/9/2020 4
5/10/2020 1
5/10/2020 2
5/10/2020 3
5/11/2020 1
我们可以使用 rowid
从 data.table
library(data.table)
data$varA <- rowid(data$dateA)
或使用 data.table
句法
setDT(data)[, varA := rowid(dateA)]
或与 dplyr
library(dplyr)
data %>%
group_by(dateA) %>%
mutate(varA = row_number())
或使用 base R
data$varA <- with(data, ave(seq_along(dateA), dateA, FUN = seq_along))