R:空日期中的日期操作结果

R: Date Operation Results in Empty Dates

我正在使用 R 编程语言。我正在尝试区分两个日期列。两个日期均采用以下格式:2010-01-01 12:01

当我将文件导入 R 时,日期采用“因子”格式。这是我在 R 中重新创建文件的尝试:

#how my file looks like when I import it into R

date_1 = c("2010-01-01 13:01 ", "2010-01-01 14:01" )
date_2 = c("2010-01-01 15:01 ", "2010-01-01 16:01" )

file = data.frame(date_1, date_2)
file$date_1 = as.factor(file$date_1)
file$date_2 = as.factor(file$date_2)

现在,我正在尝试创建一个新列,其中包含这些日期之间的差异(以分钟为单位)

我首先尝试将两个日期变量转换为适当的“日期”格式:

#convert to date formats:
    
  file$date_a = as.POSIXlt(file$date_1,format="%Y-%m-%dT%H:%M")
  file$date_b = as.POSIXlt(file$date_2,format="%Y-%m-%dT%H:%M")

然后,我尝试取差:

file$diff = difftime(file$date_a, file$date_b, units="mins")

但这会导致“NA”:

> file

             date_1            date_2 date_a date_b    diff
1 2010-01-01 13:01  2010-01-01 13:01    <NA>   <NA> NA mins
2  2010-01-01 13:01  2010-01-01 13:01   <NA>   <NA> NA mins

有人可以告诉我我做错了什么吗?

谢谢

参考:How to get difference (in minutes) between two date strings?

字符串中没有T。所以,我们需要格式为

difftime(as.POSIXct(file$date_1, format = '%Y-%m-%d %H:%M'),
       as.POSIXct(file$date_2, format = '%Y-%m-%d %H:%M'), units = 'mins')
#Time differences in mins
#[1] -120 -120