Skip to content

for loop not working

9 messages · Pascal Oettli, arun, Eliza Botto

#
Hello,

?seq

seq(i,444,37)

with i = 1,2,3...37

HTH
Pascal


Le 25/12/2012 14:03, eliza botto a ?crit :
#
Hello,

I provided you all the information you need. Replace i by 1,2,3...37 in 
seq(i,444,37).

Pascal


Le 25/12/2012 14:19, eliza botto a ?crit :
#
HI Eliza,

You could try this:
set.seed(15)
mat1<-matrix(sample(1:2000,1776,replace=TRUE),ncol=444)
colnames(mat1)<-paste("Col",1:444,sep="")
res<-lapply(seq_len(ncol(mat1)),function(i) mat1[,seq(i,444,37)])

#If you want only this from 1:37, then
?res1<-lapply(1:37,function(i) mat1[,seq(i,444,37)])


A.K.



----- Original Message -----
From: eliza botto <eliza_botto at hotmail.com>
To: "r-help at r-project.org" <r-help at r-project.org>
Cc: 
Sent: Tuesday, December 25, 2012 12:03 AM
Subject: [R] for loop not working


dear R family,i have a matrix of 444 columns. what i want to do is the following.
1. starting from column 1 i want to select every 37th column on the way. more precisely i want to select column 1, 38,75,112,149 and so on.
2.starting from column 2, i again want to select every 37th column. which means 2,39,76,113,150 and so on.
similarly starting from 3 till 37th column.
i have tried following loop command which is not working.can anyone plz see whats wrong in that?
function(i) {
extremly sorry for bothering you once again..
eliza ??? ???  ??? ?  ??? ??? ? 
??? [[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.
#
Hi,

Why don't you use Arun's solution?

Regards,
Pascal

Le 25/12/2012 15:57, eliza botto a ?crit :
#
HI Eliza,

Try this:
set.seed(15)
mat1<-matrix(sample(1:2000,1776,replace=TRUE),ncol=444)
colnames(mat1)<-paste("Col",1:444,sep="")
res1<-lapply(1:37,function(i) mat1[,seq(i,444,37)])
res2<-lapply(1:37,function(i) {a<-mat1[,i:444];a[,c(TRUE,rep(FALSE,36))]}) #your code
identical(res1,res2)
#[1] TRUE