我有这个数据集
date1<-c(rep(c("2020-06-01"),times=20))
date2<-c(rep(c("2020-06-02"),times=15))
date3<-c(rep(c("2020-06-03"),times=5))
date4<-c(rep(c("2020-06-04"),times=10))
date5<-c(rep(c("2020-06-05"),times=2))
date<-c(date1,date2,date3,date4,date5)我想制作一个数据框,它将每个日期读取为1,1,1,2,2,2,3,3,4,4……
更好的输出结果是
date number of dates
1 2020-06-01 1
2 2020-06-01 1
3 2020-06-01 1
4 2020-06-01 1
5 2020-06-01 1
6 2020-06-01 1
7 2020-06-01 1
8 2020-06-01 1
9 2020-06-01 1
10 2020-06-01 1
11 2020-06-01 1
12 2020-06-01 1
13 2020-06-01 1
14 2020-06-01 1
15 2020-06-01 1
16 2020-06-01 1
17 2020-06-01 1
18 2020-06-01 1
19 2020-06-01 1
20 2020-06-01 1
21 2020-06-02 2
22 2020-06-02 2
23 2020-06-02 2
24 2020-06-02 2
25 2020-06-02 2
26 2020-06-02 2
27 2020-06-02 2
28 2020-06-02 2
29 2020-06-02 2
30 2020-06-02 2
31 2020-06-02 2
32 2020-06-02 2
33 2020-06-02 2
34 2020-06-02 2
35 2020-06-02 2
36 2020-06-03 3
37 2020-06-03 3
38 2020-06-03 3
39 2020-06-03 3
40 2020-06-03 3
41 2020-06-04 4
42 2020-06-04 4
43 2020-06-04 4
44 2020-06-04 4
45 2020-06-04 4
46 2020-06-04 4
47 2020-06-04 4
48 2020-06-04 4
49 2020-06-04 4
50 2020-06-04 4
51 2020-06-05 5
52 2020-06-05 5发布于 2021-02-05 21:28:38
将日期转换为系数,然后将其转换为数字,以获得系数代码:
data.frame(date, day_no = as.numeric(factor(date)))发布于 2021-02-05 21:32:18
使用match()
data.frame(date = date, number_of_date = match(date, unique(date)))发布于 2021-02-05 21:32:59
我是这样解决的:
date1<-c(rep(c("2020-06-01"),times=20))
date2<-c(rep(c("2020-06-02"),times=15))
date3<-c(rep(c("2020-06-03"),times=5))
date4<-c(rep(c("2020-06-04"),times=10))
date5<-c(rep(c("2020-06-05"),times=2))
date<-c(date1,date2,date3,date4,date5)
df <- data.frame(date=date)
df2 <- data.frame(date=unique(date), number=c(1:length(unique(date))))
df <- merge(df, df2)https://stackoverflow.com/questions/66064031
复制相似问题