[R] plotting multiple animal tracks against Date/Time

Struve, Juliane j.struve at imperial.ac.uk
Thu Sep 23 23:53:23 CEST 2010


Hello,

thank you very much for replying. I have tried this, but I get error message 

"Error in .subset(x, j) : invalid subscript type 'list'" after 

z1 <- read.zoo(textConnection(Lines1), skip = 1, index = list(1, 2), FUN = dt)

Regards,

Juliane 





Dr. Juliane Struve
Daphne Jackson Fellow
Imperial College London
Department of Life Sciences
Silwood Park Campus
Buckhurst Road
Ascot, Berkshire,
SL5 7PY, UK

Tel: +44 (0)20 7594 2527
Fax: +44 (0)1344 874 957

http://www.aquaticresources.org
________________________________________
From: Gabor Grothendieck [ggrothendieck at gmail.com]
Sent: 23 September 2010 18:26
To: Struve, Juliane
Cc: r-help at r-project.org
Subject: Re: [R] plotting multiple animal tracks against Date/Time

On Thu, Sep 23, 2010 at 9:50 AM, Struve, Juliane
<j.struve at imperial.ac.uk> wrote:
> Dear list,
>
> I would like to create a time series plot in which the paths of several individuals are stacked above each other, with the x-axis being the total observation period of three years ( 1.1.2004 to 31.12.2007) and the y-axis being  some defined range[min,max].
>
> My data consist of Date/Time information and the paths of 45 individual as the distance from the location of release. An example data set for 2 individuals is given below.The observation period and frequency of observations varies between individuals.
>
> I believe stackplot() may be able to do this task, but I am not sure how to handle the variable time period and frequency of observations for different individuals. Could someone advise if stackplot() is suitable or if there is a better approach or package ?
>
> Thank you very much for your time and best wishes,
>
> Juliane
>
>


Try this:

Lines1 <- "Date                    Distance [m]
2006-08-18 22:05:15 1815.798
2006-08-18 22:06:35 1815.798
2006-08-18 22:08:33 1815.798
2006-08-18 22:09:49 1815.798
2006-08-18 22:12:50 1815.798
2006-08-18 22:16:26 1815.798"

Lines2 <- "Date                          Distance [m]
2006-08-18 09:53:20      0.0
2006-08-18 09:59:07      0.0
2006-08-18 10:09:20      0.0
2006-08-18 10:21:14      0.0
2006-08-18 10:34:18      0.0
2006-08-18 10:36:44    100.2"

library(chron)
dt <- function(date, time) as.chron(paste(date, time))

library(zoo)
library(chron)

# read in data

dt <- function(date, time) as.chron(paste(date, time))
z1 <- read.zoo(textConnection(Lines1), skip = 1, index = list(1, 2), FUN = dt)
z2 <- read.zoo(textConnection(Lines2), skip = 1, index = list(1, 2), FUN = dt)

# create single zoo object

z <- na.approx(cbind(z1, z2), na.rm = FALSE)

# plot -- remove screen=1 if you want separate panels

plot(z, screen = 1)

--
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com


More information about the R-help mailing list