【发布时间】:2021-05-25 07:18:41
【问题描述】:
我有超过 20 年的数据,其中有一列包含从 1999 年到 2020 年的年份。我还有另一列包含天数。但是,我的天数列是数字的。例如,1999 年 1 月 1 日标记为“1”,1999 年 1 月 2 日标记为“2”,1999 年 1 月 3 日标记为“3”,依此类推,直到 1999 年 12 月 31 日标记为“365”。然后下一年再次从 2000 年开始,第 1 天为 2000 年 1 月 1 日.......第 32 天是 2000 年 2 月 1 日,第 33 天是 2000 年 2 月 2 日,依此类推,直到 2020 年。 我需要根据日值创建一个包含月份的新列。例如,第 1 天到第 31 天应该是 1 月,第 32 天 60 应该是 2 月,依此类推,一直到 12 月,持续多年。 附件是一个小数据集来说明我正在尝试做的事情。我没有尝试过任何事情,因为我不知道我该怎么做。我阅读了有关格式和 as.Date 的信息,但没有发现与此示例相近的内容。
sal <- structure(list(year = c(1999, 1999, 1999, 1999, 1999, 1999, 1999,
1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999, 1999,
1999, 1999, 1999, 1999), day = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
43, 44)), row.names = c(NA, -44L), class = c("tbl_df", "tbl",
"data.frame"))
Ending dataset should look like below:
year day month
1 1999 1 January
2 1999 2 January
3 1999 3 ...
4 1999 4 ...
5 1999 5 ...
6 1999 6
7 1999 7
8 1999 8
9 1999 9
10 1999 10
11 1999 11
12 1999 12
13 1999 13
14 1999 14
15 1999 15
16 1999 16
17 1999 17
18 1999 18
19 1999 19
20 1999 20
21 1999 21
22 1999 22
23 1999 23
24 1999 24
25 1999 25
26 1999 26
27 1999 27
28 1999 28
29 1999 29
30 1999 30 ...
31 1999 31 January
32 1999 32 February
33 1999 33 February
34 1999 34 ...
35 1999 35
36 1999 36
37 1999 37
38 1999 38
39 1999 39
40 1999 40
41 1999 41
42 1999 42
43 1999 43
44 1999 44
45 NA NA
【问题讨论】:
标签: r