Douglas Karabasz
2013-Mar-07 18:42 UTC
[R] xts time series object removing time and leaving just the date
I have and XTS time series object that has date and time. I started with 1 minute data and used apply.daily(x, sum) to sum the data to one cumulative value. This function works just fine however it leaves a time for the last summed value which looks like this 2006-07-19 14:58:00. I need to just have the date and to remove the time value of 14:58:00 just leaving the date value of 2006-07-19 . I want to keep the xts object otherwise intact. Is this possible? Thank you, Douglas [[alternative HTML version deleted]]
arun
2013-Mar-07 19:09 UTC
[R] xts time series object removing time and leaving just the date
Hi,
Try this:
library(xts)
Date1<- seq(as.POSIXct("2012-09-10 02:15:00",format="%Y-%m-%d
%H:%M:%S"), as.POSIXct("2012-09-12
02:15:00",format="%Y-%m-%d %H:%M:%S"), by="min")
length(Date1)
#[1] 2881
set.seed(15)
value<- rnorm(2881)
xt1<-xts(value,order.by=Date1)
res<-apply.daily(xt1,sum)
res1<- res
?res
#???????????????????????? [,1]
#2012-09-10 23:59:00? 19.64393
#2012-09-11 23:59:00 -81.62702
#2012-09-12 02:15:00? 11.98883
?index(res)<-as.Date(unlist(lapply(strsplit(as.character(index(res)),"
"),function(x) x[1])))
?res
#??????????????? [,1]
#2012-09-10? 19.64393
#2012-09-11 -81.62702
#2012-09-12? 11.98883
#or
index(res1)<-as.Date(gsub("\\s+.*","",index(res1)))
?res1
#??????????????? [,1]
#2012-09-10? 19.64393
#2012-09-11 -81.62702
#2012-09-12? 11.98883
A.K.
----- Original Message -----
From: Douglas Karabasz <douglas at sigmamonster.com>
To: r-help at r-project.org
Cc:
Sent: Thursday, March 7, 2013 1:42 PM
Subject: [R] xts time series object removing time and leaving just the date
I have and XTS time series object that has date and time.? I started with 1
minute data and used apply.daily(x, sum) to sum the data to one cumulative
value.? This function works just fine however it leaves a time for the last
summed value which looks like this 2006-07-19 14:58:00.? I need to just have
the date and to remove the time value of 14:58:00 just leaving the date
value of 2006-07-19? .? I want to keep the xts object otherwise intact.? Is
this possible?? ?
Thank you,
Douglas
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
arun
2013-Mar-07 23:02 UTC
[R] xts time series object removing time and leaving just the date
HI Douglas,
index(res)
#[1] "2012-09-10 23:59:00 EDT" "2012-09-11 23:59:00 EDT"
#[3] "2012-09-12 02:15:00 EDT"
?str(index(res))
?#POSIXct[1:3], format: "2012-09-10 23:59:00" "2012-09-11
23:59:00" ...
When you use this:
strsplit(index(res)," ")
#Error in strsplit(index(res), " ") : non-character argument
Convert it to character and split
?strsplit(as.character(index(res))," ")# split by space
#[[1]]
#[1] "2012-09-10" "23:59:00"?
#[[2]]
#[1] "2012-09-11" "23:59:00"?
#[[3]]
#[1] "2012-09-12" "02:15:00"?
Now it is a list with three list elements.? Each list element is a vector of
length two.
lapply(strsplit(as.character(index(res))," "), function(x) x[1])
#select the first vector element
#[[1]]
#[1] "2012-09-10"
#[[2]]
#[1] "2012-09-11"
#[[3]]
#[1] "2012-09-12"
?unlist(lapply(strsplit(as.character(index(res))," "), function(x)
x[1]))? #which is still a 'character' class
#[1] "2012-09-10" "2012-09-11" "2012-09-12"
? index(res)<-unlist(lapply(strsplit(as.character(index(res))," "),
function(x) x[1]))
#Error in `index<-.xts`(`*tmp*`, value = c("2012-09-10",
"2012-09-11",? :
?# unsupported ?index? index type of class ?character?
Convert it to `date`
index(res)<- as.Date(unlist(lapply(strsplit(as.character(index(res)),"
"), function(x) x[1])))
res
#??????????????? [,1]
#2012-09-10? 19.64393
#2012-09-11 -81.62702
#2012-09-12? 11.98883
----- Original Message -----
From: Douglas Karabasz <douglas at sigmamonster.com>
To: 'arun' <smartpink111 at yahoo.com>
Cc:
Sent: Thursday, March 7, 2013 5:44 PM
Subject: RE: [R] xts time series object removing time and leaving just the date
Arun,
This is awesome, works perfect!? Now I'm trying to understand it.? I hate to
ask this but could you give a quick overview of
index(res)<-as.Date(unlist(lapply(strsplit(as.character(index(res)),"
"),function(x) x[1])))?
If I'm ask too much I understand.? You got me over the hump and I'm sure
I
will understand it at a later date.?
Thank you again,
Douglas
-----Original Message-----
From: arun [mailto:smartpink111 at yahoo.com]
Sent: Thursday, March 07, 2013 4:04 PM
To: Douglas Karabasz
Subject: Re: [R] xts time series object removing time and leaving just the
date
Hi Douglas,
No problem.
Arun
----- Original Message -----
From: Douglas Karabasz <douglas at sigmamonster.com>
To: 'arun' <smartpink111 at yahoo.com>
Cc:
Sent: Thursday, March 7, 2013 4:41 PM
Subject: RE: [R] xts time series object removing time and leaving just the
date
Arun,
Yes, this looks great!? Thanks for the help.? Also, thanks for creating a
xts object for me first.? I should have done it in the question looking
back.? However, I think I would have created incorrectly so I learned two
really helpful things here.
Thanks again,
Douglas
-----Original Message-----
From: arun [mailto:smartpink111 at yahoo.com]
Sent: Thursday, March 07, 2013 1:09 PM
To: Douglas Karabasz
Cc: R help
Subject: Re: [R] xts time series object removing time and leaving just the
date
Hi,
Try this:
library(xts)
Date1<- seq(as.POSIXct("2012-09-10 02:15:00",format="%Y-%m-%d
%H:%M:%S"),
as.POSIXct("2012-09-12 02:15:00",format="%Y-%m-%d
%H:%M:%S"), by="min")
length(Date1)
#[1] 2881
set.seed(15)
value<- rnorm(2881)
xt1<-xts(value,order.by=Date1)
res<-apply.daily(xt1,sum)
res1<- res
?res
#???????????????????????? [,1]
#2012-09-10 23:59:00? 19.64393
#2012-09-11 23:59:00 -81.62702
#2012-09-12 02:15:00? 11.98883
?index(res)<-as.Date(unlist(lapply(strsplit(as.character(index(res)),"
"),function(x) x[1])))
?res
#??????????????? [,1]
#2012-09-10? 19.64393
#2012-09-11 -81.62702
#2012-09-12? 11.98883
#or
index(res1)<-as.Date(gsub("\\s+.*","",index(res1)))
?res1
#??????????????? [,1]
#2012-09-10? 19.64393
#2012-09-11 -81.62702
#2012-09-12? 11.98883
A.K.
----- Original Message -----
From: Douglas Karabasz <douglas at sigmamonster.com>
To: r-help at r-project.org
Cc:
Sent: Thursday, March 7, 2013 1:42 PM
Subject: [R] xts time series object removing time and leaving just the date
I have and XTS time series object that has date and time.? I started with 1
minute data and used apply.daily(x, sum) to sum the data to one cumulative
value.? This function works just fine however it leaves a time for the last
summed value which looks like this 2006-07-19 14:58:00.? I need to just have
the date and to remove the time value of 14:58:00 just leaving the date
value of 2006-07-19? .? I want to keep the xts object otherwise intact.? Is
this possible?? ?
Thank you,
Douglas
??? [[alternative HTML version deleted]]
______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.