[R] Convert timeseries to transition matrix
Wiener, Matthew
matthew_wiener at merck.com
Tue Mar 22 17:36:28 CET 2005
Ingmar --
Using "embed" and "table" can do it. "Embed" creates the
> temp1 <- sample(1:3, 500, replace = TRUE)
> temp2 <- embed(temp1, 2)
> dim(temp2)
[1] 499 2
> table(as.data.frame(temp2[, c(2,1)]))
V2
V1 1 2 3
1 47 59 50
2 68 57 52
3 42 61 63
You need to reverse the times because embed creates rows of the form (x[t],
x[t-1]). For higher dimensions you could use rev(1:ncol(x)).
Hope this helps,
Matt Wiener
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ingmar Visser
Sent: Tuesday, March 22, 2005 11:21 AM
To: R-help at stat.math.ethz.ch
Subject: [R] Convert timeseries to transition matrix
Hi All,
Does someone have an idea of how to cleverly convert a categorical
timeseries into a transition matrix?
Ie, I have something like:
x<- c(1,1,2,1,1,2,2,2,1,2),
And I want a matrix with counts and/or probabilities:
> tr <- matrix(c(2,3,2,2),2,2)
> tr
[,1] [,2]
[1,] 2 2
[2,] 3 2
Meaning that there are two transitions from 1 to 1, two from 1 to 2, three
from 2 to 1 and two from 2 to 2.
Using for loops etc this is of course no problem, but I am curious whether
there is a smarter solution.
Any hints appreciated, Ingmar
--
Ingmar Visser
Department of Psychology, University of Amsterdam
Roetersstraat 15, room 1009
1018 WB Amsterdam
The Netherlands
http://users.fmg.uva.nl/ivisser/
tel: +31-20-5256735
______________________________________________
R-help at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list