如何在 R 中添加和减去日期的天数?
R 编程语言提供了多种处理日期和日期/时间数据的方法。内置框架 as.Date函数只负责处理日期,R 中的库 chron 处理日期和时间,不支持时区;而 POSIXct 和 POSIXlt 类提供对处理日期时间对象和时区的支持。可以将日期时间对象轻松转换为其他与日期相关的对象。
方法 1:使用as 。日期()方法
日期对象存储为从 1970 年 1 月 1 日开始计算的天数,其中负数用于指代更早的日期。日期对象直接支持基本算术,其中整数直接从日期中添加或减去。直接添加或减去 N 天数,并返回标准日期格式作为输出。 Date 对象还可以指定不同的格式来包含日期。 as.Date() 方法将字符串日期对象作为输入并将其转换为日期对象。
as.Date(character date object)
以下 R 代码段说明了 Date 对象的用法:
R
# declaring a date object
date <- as.Date("2020/12/11")
print ("Original Date")
print (date)
# subtracting 3 days from date
# object
n = 3
# subtracting days
new_sub_date <- date - n
print ("Subtracted Date")
print (new_sub_date)
# adding days
new_add_date <- date + n
print ("Added Date")
print (new_add_date)
R
# using required libraries
library(lubridate)
# declaring a date object
date <- "2009-10-01"
print ("Original Date")
print (date)
# subtracting 3 days from date
# object
n = 3
# subtracting days
new_sub_date <- date - n
print ("Subtracted Date")
print (new_sub_date)
# adding days
new_add_date <- date + n
print ("Added Date")
print (new_add_date)
R
# using required libraries
library(lubridate)
# declaring a date object
date <- "2009-10-01"
print ("Original Date")
print (date)
# subtracting days
n = 6
sub_date <- ymd(date) - days(6)
print ("Subtracted Date")
print (sub_date)
# adding days
new_add_date <- ymd(date) + days(0)
print ("Added Date")
print (new_add_date)
输出:
[1] "Original Date"
[1] "2020-12-11"
[1] "Subtracted Date"
[1] "2020-12-08"
[1] "Added Date"
[1] "2020-12-14"
方法 2:R 中的 lubridate 包
Lubridate 是一个 R 包,用于模拟轻松处理日期和时间对象。它提供了广泛的功能来对日对象进行修改。 R 中的 ymd() 方法用于从日期时间对象中提取日期部分,将其转换为标准的年、月和日格式。 days() 方法接受一个整数作为参数,并直接使用数学运算符对 Date 对象执行算术运算。
Syntax: ymd(date)
Arguments : date – String date object
Returns : Date object in ymd format
代码:
电阻
# using required libraries
library(lubridate)
# declaring a date object
date <- "2009-10-01"
print ("Original Date")
print (date)
# subtracting 3 days from date
# object
n = 3
# subtracting days
new_sub_date <- date - n
print ("Subtracted Date")
print (new_sub_date)
# adding days
new_add_date <- date + n
print ("Added Date")
print (new_add_date)
输出:
[1] "Original Date"
[1] "2009-10-01"
[1] "Subtracted Date"
[1] "2009-09-25"
[1] "Added Date"
[1] "2009-10-07"
也可以使用 R 中的 days()函数执行相同的算术运算,该函数将与天数对应的整数值作为参数:
电阻
# using required libraries
library(lubridate)
# declaring a date object
date <- "2009-10-01"
print ("Original Date")
print (date)
# subtracting days
n = 6
sub_date <- ymd(date) - days(6)
print ("Subtracted Date")
print (sub_date)
# adding days
new_add_date <- ymd(date) + days(0)
print ("Added Date")
print (new_add_date)
输出:
[1] "Original Date"
[1] "2009-10-01"
[1] "Subtracted Date"
[1] "2009-09-25"
[1] "Added Date"
[1] "2009-10-01"