Thanks! You saved me a lot!
2013/3/10 arun <smartpink...@yahoo.com> > > > Hi, > For the first case: > lst2<-lapply(x.list, calcnorm2, x.list) > lapply(lst2,function(x) do.call("c",x)) > #[[1]] > #[1] 0.00000 31.75257 > > #[[2]] > #[1] 31.75257 0.00000 > A.K. > > > > For the second case: > lst1<-as.list(data.frame(t(apply(x,1,calcnorm2.const,x)))) > names(lst1)<- NULL > lst1 > #[[1]] > #[1] 0.00000 31.75257 > > #[[2]] > #[1] 31.75257 0.00000 > > > > > A.K. > ----- Original Message ----- > From: ishi soichi <soichi...@gmail.com> > To: r-help <r-help@r-project.org> > Cc: > Sent: Sunday, March 10, 2013 1:18 AM > Subject: Re: [R] list + lapply insead of matrix + apply > > there is a typo. > > lapply(x.list, calcnorm, x.list) > > should be > > lapply(x.list, calcnorm2, x.list) > > sorry. > > > > > 2013/3/10 ishi soichi <soichi...@gmail.com> > > > I need to develop a simple list manipulation. Although it seems easier to > > do it in matrix form, but I need it in list form. > > > > I have a matrix > > > > x <- matrix(c(12.1, 3.44, 0.1, 3, 12, 33.1, 1.1, 23), nrow=2) > > > > for list form example, the conversion is > > > > x.list <- lapply(seq_len(nrow(x)), function(i) x[i,]) > > > > > > ### list version > > calcnorm=function(a, b){ > > diff <- mapply("-", a, b) > > diff2 <- mapply("*", diff, diff) > > sqrt.diff <-sqrt(sum(diff2)) > > return(sqrt.diff) > > } > > calcnorm2=function(a,X){ > > lapply(X, calcnorm, a) > > } > > lapply(x.list, calcnorm, x.list) > > > > [[1]] > > [[1]][[1]] > > [1] 0 > > > > [[1]][[2]] > > [1] 31.75257 > > > > > > [[2]] > > [[2]][[1]] > > [1] 31.75257 > > > > [[2]][[2]] > > [1] 0 > > > > > > ### matrix version > > calcnorm.const=function(a,b){ > > return(sqrt((a-b)%*%(a-b))) > > } > > calcnorm2.const=function(a,data){ > > apply(data,1,calcnorm.const,a) > > } > > apply(x,1,calcnorm2.const,x) > > > > [,1] [,2] > > [1,] 0.00000 31.75257 > > [2,] 31.75257 0.00000 > > > > Ideally, for later purposes, the list form of the output should be > > something like > > > > [[1]] > > [1,] 0 31.75257 > > [[2]] > > [2,] 31.75257 0 > > > > I am getting confused here. Could anyone help me out for the right output > > FORM? > > > > ishida > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@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. > > [[alternative HTML version deleted]] ______________________________________________ R-help@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.