Dear Dimitri,
Have a look at melt() from the reshape package.
X<-matrix(c(10,20,30,40,50,60),2,3)
dimnames(X)<-list(c("1","2"),c("1","2","3"))
library(reshape)
melt(X)
HTH,
Thierry
------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium
tel. + 32 54/436 185
Thierry.Onkelinx at inbo.be
www.inbo.be
To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to
say what the experiment died of.
~ Sir Ronald Aylmer Fisher
The plural of anecdote is not data.
~ Roger Brinner
The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey
-----Oorspronkelijk bericht-----
Van: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
Namens Dimitri Liakhovitski
Verzonden: donderdag 23 april 2009 16:31
Aan: R-Help List
Onderwerp: [R] transposing a matrix - row by row?
Hello,
I have a matrix that is a product of tapply on a larger data set.
Let's assume it looks like this:
X<-matrix(c(10,20,30,40,50,60),2,3)
dimnames(X)<-list(c("1","2"),c("1","2","3"))
(X)
? 1 ? 2 ? 3
1 10 30 50
2 20 40 60
Is there an efficient way of transforming this matrix into the following
matrix:
rows columns entries
1 ? ? ? ? ?1 ? ? ? ? ?10
1 ? ? ? ? ?2 ? ? ? ? ?30
1 ? ? ? ? ?3 ? ? ? ? ?50
2 ? ? ? ? ?1 ? ? ? ? ?20
2 ? ? ? ? ?2 ? ? ? ? ?40
2 ? ? ? ? ?3 ? ? ? ? ?60
Thank you very much!
--
Dimitri Liakhovitski
MarketTools, Inc.
Dimitri.Liakhovitski at markettools.com