[R] for loop not working

arun smartpink111 at yahoo.com
Tue Dec 25 17:51:05 CET 2012


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







________________________________
From: eliza botto <eliza_botto at hotmail.com>
To: "smartpink111 at yahoo.com" <smartpink111 at yahoo.com> 
Cc: "r-help at r-project.org" <r-help at r-project.org>; kridox at ymail.com 
Sent: Tuesday, December 25, 2012 1:57 AM
Subject: RE: [R] for loop not working



Dear Arun,
as usuall you were spot on. i tried the following

>lapply(seq_len(ncol(e)), function(i) {

>a<-e[,(e[i]:444)]

>a[,c(TRUE, rep(FALSE,36))]

>}) 

but it never worked. 
thanks for your kind help.
lots of love

elisa


> Date: Mon, 24 Dec 2012 22:40:08 -0800
> From: smartpink111 at yahoo.com
> Subject: Re: [R] for loop not working
> To: eliza_botto at hotmail.com
> CC: r-help at r-project.org; kridox at ymail.com
> 
> 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?
> >for (i in 1:37)
> 
> >{
> 
> 
> >a<-e[,e[i]:444]
> 
> 
> >}
> 
> 
> > lapply(seq_len(1),
> function(i) {
> 
> 
> >a[,c(TRUE, rep(FALSE,1))]
> 
> 
> >})
> 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.
>



More information about the R-help mailing list