问题描述
我从excel加载数据集
library(readxl)
df<-read_excel("excel_file.XLSX")
str(df$datecol)
我也有一个time列,它在R中被加载为日期时间。要把它带回我身边,........
df$Timecol<-format(df$Timecol,"%H:%M:%s")
但是它变成一个字符。这是我认为问题所在的地方
str(STOP_DATA$`Stop Frisk Time`)
我认为这部分可以解决问题
df$merge_date_time<-as.POSIXct(paste(df$Datecol,df$TimeCol),format="%Y-%m-%d %H:%M:%s")
然后将日期和时间合并。我现在想做的是引用一个Poxict数据类型的时间戳列。
str(df$Timestamp)
然后我想找出它们之间的时差
df$TIME_SINCE <- difftime(df$Timestamp,df$merge_date_time,tz="UTC",units = "mins" )
但是我最终得到了没有意义的怪异数字。我猜想它是时间的Character数据类型。有人知道如何解决这个问题吗?
解决方法
我最终发现这可行
df$date_time<-paste(df$date,format(as.POSIXct(df$time),'%T'))
当脚本将文件更改为字符时,我从脚本中删除了下面的部分。
df$Timecol<-format(df$Timecol,"%H:%M:%S")
我接受了晦涩难懂的POSIXT默认值,其中包含正确的时间和奇数日期(1899-12-31),脚本所做的是用相应的df $ date列替换了1899-12-31。