[R] [Urgent]replace several rows in matrix with a vector

arun smartpink111 at yahoo.com
Sun Oct 13 17:51:10 CEST 2013


Hi,
Try:
a <- matrix(0,100,3) 
a1<- a
a2 <- a
somerows<- 1:5
b1<- t(replicate(length(somerows),b))
 a[somerows,]<- b1
head(a)

#or
 b2<- rep(b,each=length(somerows))
 a1[somerows,]<- b2

head(a1)
 identical(a,a1)
#[1] TRUE

 somerows2<- c(2,4,7,8,11,14)
 b3 <- rep(b,each=length(somerows2))
 a2[somerows2,] <- b3
head(a2,15)



A.K.

hi all, 

what i want to ask is how to replace rows with a vetor without looping. 

for example, I have one matrix like this, 

a<-matrix(0,100,3) 

and then, I want to replace some of rows with this vector, 

b<-c(1,2,3) 

when I use below code, the result is what I want, 

a[somerows,]<-t(b) 

result of a[somerows,] is 

1  2  1 
2  3  2 
3  1  3 
1  2  1 
2  3  2 
3  1  3 
1  2  1 


actually I want this format below, 

1 2 3 
1 2 3 
1 2 3 
1 2 3 
1 2 3 
1 2 3 

how can I solve this problem? 

Thanks,



More information about the R-help mailing list