day month year hour
01 05 2017 00
05 12 2017 01
10 07 2017 23
Run Code Online (Sandbox Code Playgroud)
我没有分钟和秒列,现在我正在尝试以以下格式获取单个变量作为 date_time
2017-05-01 00:00:00
2017-12-05 01:00:00
2017-07-10 23:00:00
Run Code Online (Sandbox Code Playgroud)
使用以下代码时出现错误
df$date <- as.Date(with(df, paste(year, month, day,hour,sep="-")),
"%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
提前致谢
在data.frame中,我在表单中有一个日期时间戳:
head(x$time)
[1] "Thu Oct 11 22:18:02 2012" "Thu Oct 11 22:50:15 2012" "Thu Oct 11 22:54:17 2012"
[4] "Thu Oct 11 22:43:13 2012" "Thu Oct 11 22:41:18 2012" "Thu Oct 11 22:15:19 2012"
Run Code Online (Sandbox Code Playgroud)
每当我尝试将它转换为as.Date,lubridate或动物园时,我都会得到NAs或错误.
将此时间转换为可读形式的方法是什么?
我试过了:
Time<-strptime(x$time,format="&m/%d/%Y %H:$M")
x$minute<-parse_date_time(x$time)
x$minute<-mdy(x$time)
x$minute<-as.Date(x$time,"%m/%d/%Y %H:%M:%S")
x$minute<-as.time(x$time)
x$minute<-as.POSIXct(x$time,format="%H:%M")
x$minute<-minute(x$time)
Run Code Online (Sandbox Code Playgroud) 由于被问到"明显"问题而被降低风险的极大风险,如何找到R中两个小时之间的差异?
> ISOdate(2004,1,6) - ISOdate(2004,1,1)
Time difference of 5 days
> as.POSIXlt(ISOdate(2004,1,6) - ISOdate(2004,1,1))
Error in as.POSIXlt.default(ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)) :
do not know how to convert 'ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1)' to class "POSIXlt"
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$year
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$year :
$ operator is invalid for atomic vectors
> (ISOdate(2004,1,6) - ISOdate(2004,1,1))$mon
Error in (ISOdate(2004, 1, 6) - ISOdate(2004, 1, 1))$mon :
$ operator is invalid for …Run Code Online (Sandbox Code Playgroud) 我将年、月和日作为单独的数值并想创建一个日期对象。在像 C# 或 javascript 这样的大多数语言中,我可以做类似的事情
let x=new Date(2010,11,19);
Run Code Online (Sandbox Code Playgroud)
初始化日期。什么是 R 等价物?显然我可以做到
as.Date(paste0(year,'-',month,'-',day))
Run Code Online (Sandbox Code Playgroud)
但是为了转换为日期而转换为字符似乎毫无意义,对吧?当然有办法减少不必要的额外字符串转换吗?