如何从 r 中的日期获取周数(带有示例)
您可以使用以下方法从 R 中的日期获取周数:
方法 1:使用 Base R 获取周数
strftime(df$date_column, format = ' %V ')
方法 2:使用 Lubridate 包获取周数
library (lubridate)
isoweek(ymd(df$ date_column ))
以下示例展示了如何在 R 中将每种方法与以下数据帧一起使用:
#create data frame df <- data. frame (date=as. Date (c('1/8/2022', '1/9/2022', '2/10/2022', '2/15/2022', '3/5/2022', '3/22/2022', '3/27/2022'), '%m/%d/%Y'), sales=c(8, 14, 22, 23, 16, 17, 23)) #view data frame df dirty date 1 2022-01-08 8 2 2022-01-09 14 3 2022-02-10 22 4 2022-02-15 23 5 2022-03-05 16 6 2022-03-22 17 7 2022-03-27 23
示例 1:使用 Base R 获取周数
以下代码显示如何使用strftime()函数从数据框中的日期列获取周数:
#add column to show week number
df$week_num <- strftime(df$date, format = " %V ")
#view updated data frame
df
date sales week_num
1 2022-01-08 8 01
2 2022-01-09 14 01
3 2022-02-10 22 06
4 2022-02-15 23 07
5 2022-03-05 16 09
6 2022-03-22 17 12
7 2022-03-27 23 12
名为week_num的新列显示日期列中的值的周数。
注意:根据文档, %V%计算日期数字的方式如下: “一年中的周数(星期一作为一周的第一天)作为十进制 [01,53]”。如果包含 1 月 1 日的那周在新的一年中有 4 天或更多天,则将其视为第 1 周。否则,它是上一年的最后一周,下一周是第 1 周。
示例 2:使用 Lubridate 包获取周数
以下代码显示如何使用lubridate包的isoweek()函数从数据框中的日期列获取周数:
#add column to show week number
df$week_num <- isoweek(ymd(df$date))
#view updated data frame
df
date sales week_num
1 2022-01-08 8 1
2 2022-01-09 14 1
3 2022-02-10 22 6
4 2022-02-15 23 7
5 2022-03-05 16 9
6 2022-03-22 17 12
7 2022-03-27 23 12
名为week_num的新列显示日期列中的值的周数。
请注意,周数与上例中使用strftime()函数计算的周数相匹配。
其他资源
以下教程解释了如何在 R 中执行其他常见任务: