In addition,
If your matrix names do not follow any particular pattern:
tiger<- matrix(1:20,ncol=5)
cat<- matrix(21:40,ncol=5)
?dog<- matrix(41:60,ncol=5)
?wolf<- matrix(61:80,ncol=5)
vec<- c(1,2,4,3,2,3,1)
vec2<- c("tiger","cat","dog","wolf")
#Suppose, you wanted the order to be "tiger", "cat",
"dog", "wolf"
?vec2<- factor(vec2,levels=vec2)
?vec2
#[1] tiger cat?? dog?? wolf
#Levels: tiger cat dog wolf
?res3<-do.call(rbind,lapply(vec,function(i)
get(as.character(vec2[as.numeric(vec2)==i]))))
res3
?# ??? [,1] [,2] [,3] [,4] [,5]
?#[1,]??? 1??? 5??? 9?? 13?? 17
?#[2,]??? 2??? 6?? 10?? 14?? 18
?#[3,]??? 3??? 7?? 11?? 15?? 19
?#[4,]??? 4??? 8?? 12?? 16?? 20
?#[5,]?? 21?? 25?? 29?? 33?? 37
?#[6,]?? 22?? 26?? 30?? 34?? 38
?#[7,]?? 23?? 27?? 31?? 35?? 39
?#[8,]?? 24?? 28?? 32?? 36?? 40
?#[9,]?? 61?? 65?? 69?? 73?? 77
#[10,]?? 62?? 66?? 70?? 74?? 78
#[11,]?? 63?? 67?? 71?? 75?? 79
#[12,]?? 64?? 68?? 72?? 76?? 80
#[13,]?? 41?? 45?? 49?? 53?? 57
#[14,]?? 42?? 46?? 50?? 54?? 58
#[15,]?? 43?? 47?? 51?? 55?? 59
#[16,]?? 44?? 48?? 52?? 56?? 60
#[17,]?? 21?? 25?? 29?? 33?? 37
#[18,]?? 22?? 26?? 30?? 34?? 38
#[19,]?? 23?? 27?? 31?? 35?? 39
#[20,]?? 24?? 28?? 32?? 36?? 40
#[21,]?? 41?? 45?? 49?? 53?? 57
#[22,]?? 42?? 46?? 50?? 54?? 58
#[23,]?? 43?? 47?? 51?? 55?? 59
#[24,]?? 44?? 48?? 52?? 56?? 60
#[25,]??? 1??? 5??? 9?? 13?? 17
#[26,]??? 2??? 6?? 10?? 14?? 18
#[27,]??? 3??? 7?? 11?? 15?? 19
#[28,]??? 4??? 8?? 12?? 16?? 20
A.K.
----- Original Message -----
From: arun <smartpink111 at yahoo.com>
To: Preetam Pal <lordpreetam at gmail.com>
Cc:
Sent: Thursday, April 25, 2013 9:03 AM
Subject: Re: [R] Selecting and then joining data blocks
HI Preetam,
I created the matrices in a list because it was easier to create.? If you look
at the second solution:
B1<- lst1[[1]]
?B2<- lst1[[2]]
?B3<- lst1[[3]]
?B4<- lst1[[4]]
Consider that B1, B2, B3, B4 are your actual matrices and apply the solution
below:
?paste0("B",vec) #gives the names of the matrices
#[1] "B1" "B2" "B4" "B3" "B2"
"B3" "B1"
using get(), will get the matrices stored in that names.
?res2<-do.call(rbind,lapply(vec,function(i) get(paste0("B",i))))
If the names of the matrices are different, you need to change it accordingly.?
I programmed it based on the information you gave.
I hope this helps.
Arun
________________________________
From: Preetam Pal <lordpreetam at gmail.com>
To: arun <smartpink111 at yahoo.com>
Sent: Thursday, April 25, 2013 8:53 AM
Subject: Re: [R] Selecting and then joining data blocks
Hi Arun,
Thanks for your solution. But there is only 1 ?thing which i could not
understand:
In my case, the 4 matirces(B1,B2,B3,B4) were already specified and i have to
work with these only...how do I accommodate that (instead of letting R produce
the big matrix by random sampling)..This might be very trivial, but i am a
starter with R...I shall really appreciate if you could advise me on this.
Again thanks,
Preetam
On Thu, Apr 25, 2013 at 5:44 PM, arun <smartpink111 at yahoo.com> wrote:
HI,>set.seed(24)
>#creating the four matrix in a list
>
>lst1<-lapply(1:4,function(x) matrix(sample(1:40,20,replace=TRUE),ncol=5))
>names(lst1)<- paste0("B",1:4)
>vec<- c(1,2,4,3,2,3,1)
>res<-do.call(rbind,lapply(vec,function(i) lst1[[i]]))
>dim(res)
>#[1] 28? 5
>
>
>#or
>B1<- lst1[[1]]
>?B2<- lst1[[2]]
>?B3<- lst1[[3]]
>?B4<- lst1[[4]]
>
>?res2<-do.call(rbind,lapply(vec,function(i)
get(paste0("B",i))))
>?identical(res,res2)
>#[1] TRUE
>A.K.
>
>
>
>
>
>----- Original Message -----
>From: Preetam Pal <lordpreetam at gmail.com>
>To: r-help at r-project.org
>Cc:
>Sent: Thursday, April 25, 2013 7:51 AM
>Subject: [R] Selecting and then joining data blocks
>
>Hi all,
>
>I have 4 matrices, each having? 5 columns and 4 rows .....denoted by
>B1,B2,B3,B4.
>I have generated a vector of 7 indices, say (1,2,4,3,2,3,1} which refers to
>the index of the matrices to be chosen and then appended one on the top of
>the next: like, in this case, I wish to have the following mega matrix:
>B1over B2 over B4 over B3 over B2 over B3 over B1.
>
>1> How can I achieve this?
>2> I don't want to manually identify and arrange the matrices for
each
>vector of index values generated? ?(for which the code? I used is :
>index=sample( 4,7,replace=T)). How can I automate the process?
>
>Basically, I am doing bootstrapping , but the observations are actually 4X5
>matrices.
>
>Appreciate your help.
>
>
>Thanks,
>Preetam
>
>
>---
>
>Preetam Pal
>(+91)-9432212774
>M-Stat 2nd Year,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Room No. N-114
>Statistics Division,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?C.V.Raman
>Hall
>Indian Statistical Institute,? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?B.H.O.S.
>Kolkata.
>
>??? [[alternative HTML version deleted]]
>
>______________________________________________
>R-help at 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.
>
>
--
Preetam Pal ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (+91)-9432212774
M-Stat 2nd Year, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Room No. N-114
Statistics Division, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C.V.Raman Hall
Indian Statistical Institute, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? B.H.O.S.
Kolkata.