Hi,
Try:
set.seed(49)
qcd<- matrix(sample(1:20,124*69,replace=TRUE),ncol=69)
set.seed(345)
listt<- matrix(sample(1:80,124*5,replace=TRUE),ncol=5)
lst1<-list(c(15,2),c(56,54),c(15,62),c(4,14))
?names(lst1)<- 2:5
S<- do.call(cbind,lapply(names(lst1),function(i)
{ww<-listt[,as.numeric(i),drop=FALSE];indx<-lst1[[i]]; YY<-
cbind(qcd[,indx[1]],qcd[,indx[2]]);M<- lm(ww~qcd[,indx[1]]+qcd[,indx[2]]);
A1<- M$coef[2]; B1<- M$coef[3];
unlist(lapply(seq_len(nrow(YY)),function(i){Y<- YY[i,];A<- A1*Y[1]; B<-
B1*Y[2]; Alp<- A+B} ),use.names=FALSE) }))
colnames(S)<- paste0("Alp",1:4)
?dim(S)
#[1] 124?? 4
#or just
S1<-do.call(cbind,lapply(names(lst1),function(i)
{ww<-listt[,as.numeric(i),drop=FALSE];indx<-lst1[[i]]; YY<-
cbind(qcd[,indx[1]],qcd[,indx[2]]);M<- lm(ww~qcd[,indx[1]]+qcd[,indx[2]]);
A1<- M$coef[2]; B1<- M$coef[3]; A<- A1* YY[,1]; B<- B1*YY[,2] ;
A+B}))
?colnames(S1)<- colnames(S)
?identical(S1,S)
#[1] TRUE
A.K.
________________________________
From: eliza botto <eliza_botto at hotmail.com>
To: "smartpink111 at yahoo.com" <smartpink111 at yahoo.com>
Sent: Tuesday, September 24, 2013 8:04 AM
Subject:
Dear Arun,
I have the following codes to perform a certain operation
where "listt" is a matrix of dimension 124 ROW ?and 5 COLUMN.
"qcd" has 124 rows and 69 columns. YY?has 12 rows and 2 columns.?
What i want to do is to make a loop so that R automatically replaces
"15" in Y<-YY[15,] with the numbers from 1 to 124, every where.?
So "Alp1","Alp2","Alp3" and?"Alp4"
should each be of 124 rows and 1 column. similarly "S",in the
end,should be of dimension 124*4.
How can i do that?
I hope i am clear but if there is anything that is needed to be cleared about
question please do let me know.
ww<-matrix(listt[,2],ncol=1)
?YY<-cbind(qcd[,15],qcd[,2])
?Y<-YY[15,]
?M<-lm(ww~qcd[,15]+qcd[,2])
?A<-M$coefficients[2]*Y[1]
?B<-M$coefficients[3]*Y[2]
?Alp1<-A+B
?Alp1
?ww<-matrix(listt[,3],ncol=1)
?YY<-cbind(qcd[,56],qcd[,54])
?Y<-YY[15,]
?M<-lm(ww~qcd[,56]+qcd[,54])
?A<-M$coefficients[2]*Y[1]
?B<-M$coefficients[3]*Y[2]
?Alp2<-A+B
?Alp2
ww<-matrix(listt[,4],ncol=1)
?YY<-cbind(qcd[,15],qcd[,62])
?Y<-YY[15,]
?M<-lm(ww~qcd[,7]+qcd[,62])
?A<-M$coefficients[2]*Y[1]
?B<-M$coefficients[3]*Y[2]
?Alp3<-A+B
Alp3
ww<-matrix(listt[,5],ncol=1)
?YY<-cbind(qcd[,4],qcd[,14])
?Y<-YY[15,]
?M<-lm(ww~qcd[,4]+qcd[,14])
?A<-M$coefficients[2]*Y[1]
?B<-M$coefficients[3]*Y[2]
?Alp4<-A+B
Alp4
S<-cbind(Alp1,Alp2,Alp3,Alp4)
Thanks indeed in advance
Eliza?????