# [R-SIG-Finance] Seasonal plot of daily data

SNV Krishna krishna at primps.com.sg
Tue Aug 3 08:42:52 CEST 2010

```Hi Gabor,

many thanks for the solution and it worked.

I tried a lot in getting appropriate function to extract year or month from
the date, but could not. Your suggestion of using cut() is great, and I have
not come across this function. Later I saw on help file, but its usage to
extract year from date was not mentioned. By the way can you mention any
other function that are useful in extracting year or month or week number or
day?

also can you tell what is 'seq_along'?

thanks and best wishes

SNVK

-----Original Message-----
From: r-sig-finance-bounces at stat.math.ethz.ch
[mailto:r-sig-finance-bounces at stat.math.ethz.ch] On Behalf Of Gabor
Grothendieck
Sent: Tuesday, August 03, 2010 12:32 AM
To: SNV Krishna
Cc: r-sig-finance at stat.math.ethz.ch
Subject: Re: [R-SIG-Finance] Seasonal plot of daily data

On Mon, Aug 2, 2010 at 11:28 AM, SNV Krishna <snvk4u at gmail.com> wrote:
> Hi All,
>
> I have daily closing prices of a particular commodity. I would like to
generate annual plot of the series so as to get a visual feel of the
seasonality across years.
>
> For ex I have crude oil daily price data since 2002. I would like to have
multiple lines on a single plot, each line represents each year and plotted
against day of year on x-axis. I tried reading the data as zoo or xts
objects, but unable to plot multiple series on a single plot. Can any one
help me out in this regard?
>
> Thanks in advance for the help, rgds
>

Try this:

library(zoo)

# input data
DF <- data.frame(date = as.Date(0:999), value = 1:1000)

# create columns for year and
# julian day (1st, 2nd, ... day of the year)

DF\$year <- cut(DF\$date, "year")
DF\$jul <- ave(DF\$value, DF\$year, FUN = seq_along)

# split into 1 col per year. year is col 2. index is col 3.
z <- read.zoo(DF[-1], index = 3, split = 2)

# plot - screen = 1 causes all columns to be in same frame colors <-
1:ncol(z) plot(z, screen = 1, col = colors) legend("bottomright", leg =
substr(levels(DF\$year), 1, 4), fill = colors)

_______________________________________________
R-SIG-Finance at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions
should go.

```