[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