This may be closer; forgot about the NAs > cast(X.m, id ~ t, function(x) if (length(x)==0) NA else sum(x)) id 1 2 3 4 5 1 a -0.6264538 NA 0.5757814 1.5117812 NA 2 b 0.1836433 0.3295078 0.7383247 0.3898432 -2.214700 3 c -0.8356286 1.5952808 NA NA 1.124931 4 d NA -0.8204684 NA -0.6212406 NA 5 e NA 0.4874291 -0.3053884 NA NA >
On Wed, Jul 1, 2009 at 1:35 PM, Young Cho<young.s...@gmail.com> wrote: > Hi, thanks everyone for any help in advance. > > I found myself dealing with a tabular time-series data formatted each row > like [ time stamp, ID, values]. I made a small examples: > > X = data.frame(t=c(1,1,1,2,2,2,2,3,3,3,4,4,4,5,5),id = > c('a','b','c','c','b','d','e','b','a','e','a','b','d','b','c')) > X$x = rnorm(15) > > 't' is time stamp, 'id' is identifier, 'x' is time series values. They are > not necessarily ordered and have sometimes missing values. In order to do > any analysis, I used to convert this type of data into a matrix form : > > Y = matrix(NA,length(unique(X$id)),length(unique(X$t))) > rownames(Y) = sort(unique(X$id)) > colnames(Y) = sort(unique(X$t)) > for(i in 1:nrow(Y)){ > xi = X[ X$id == rownames(Y)[i], ] > Y[i, match(xi$t, colnames(Y)) ] = xi$x > } > > Then, run any R operations on Y. Now, this conversion gets very painfully > slow as my data gets substantially larger. I was wondering if there is some > better ways to convert a table like 'X' into a matrix like 'Y', or even > better ways to re-format data, not necessarily matrix form. > > Young > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? ______________________________________________ R-help@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.