📌  相关文章
📜  如何在 R 中添加和减去日期的天数?

📅  最后修改于: 2022-05-13 01:55:33.210000             🧑  作者: Mango

如何在 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 对象执行算术运算。

代码:

电阻

# 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"