Hello, I have 2 functions (a and b)
a = function(n) { matrix (runif(n*2,0.0,1), n) } > > > b = function (m, matrix) { > n=nrow (matrix) > p=ceiling (n/m) > lapply (1:p, function (l,n,m) { > inf = ((l-1)*m)+1 > if (l<p) sup=((l-1)*m)+m > else sup=n > data.frame (matrix (lapply (inf: sup, function(i) > c(i, Inf, matrix[i,1], matrix[i,2]) ), nrow=m ) ) > }, n=n, m=m > ) > } > > >my.matrix = a(7) > >my.matrix > [,1] [,2] > [1,] 0.708060983 0.3242221 > [2,] 0.356736311 0.1454096 > [3,] 0.402880340 0.4763676 > [4,] 0.795947223 0.4052168 > [5,] 0.001620093 0.2618591 > [6,] 0.192215589 0.6595275 > [7,] 0.539199304 0.5402015 > > > b (m=6,matrix=my_matrix) > [[1]] > matrix.lapply.inf.sup..function.i..c.i..Inf..matrix.i..1...matrix.i.. > 1 1.0000000, Inf, 0.7080610, 0.3242221 > 2 2.0000000, Inf, 0.3567363, 0.1454096 > 3 3.0000000, Inf, 0.4028803, 0.4763676 > 4 4.0000000, Inf, 0.7959472, 0.4052168 > 5 5.000000000, Inf, 0.001620093, 0.261859077 > 6 6.0000000, Inf, 0.1922156, 0.6595275 > > [[2]] > matrix.lapply.inf.sup..function.i..c.i..Inf..matrix.i..1...matrix.i.. > 1 7.0000000, Inf, 0.5391993, 0.5402015 > 2 7.0000000, Inf, 0.5391993, 0.5402015 > 3 7.0000000, Inf, 0.5391993, 0.5402015 > 4 7.0000000, Inf, 0.5391993, 0.5402015 > 5 7.0000000, Inf, 0.5391993, 0.5402015 > 6 7.0000000, Inf, 0.5391993, 0.5402015 > It seems like the second list is filled with repeated rows (from 2 to 6) I would like the second list to stop in the last row of the my_matrix So, I would like to have the following result: > b (m=6,matrix=my_matrix) [[1]] matrix.lapply.inf.sup..function.i..c.i..Inf..matrix.i..1...matrix.i.. 1 1.0000000, Inf, 0.7080610, 0.3242221 2 2.0000000, Inf, 0.3567363, 0.1454096 3 3.0000000, Inf, 0.4028803, 0.4763676 4 4.0000000, Inf, 0.7959472, 0.4052168 5 5.000000000, Inf, 0.001620093, 0.261859077 6 6.0000000, Inf, 0.1922156, 0.6595275 [[2]] matrix.lapply.inf.sup..function.i..c.i..Inf..matrix.i..1...matrix.i.. 1 7.0000000, Inf, 0.5391993, 0.5402015 Can`t I do this with an apply function? Is there any more efficient way that substituting the lapply by a for loop? THanks, Rui [[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.