The following is identical in R and S, but still strange ... R> apply(matrix(1:20, nc = 4), 1, table) [,1] [,2] [,3] [,4] [,5] [1,] 1 1 1 1 1 [2,] 1 1 1 1 1 [3,] 1 1 1 1 1 [4,] 1 1 1 1 1 R> apply(matrix(rep(1, 20), nc = 4), 1, table) [1] 4 4 4 4 4 R> apply(matrix(c(1:4, 1, 6 : 8), nc = 4), 1, table) [[1]] 1 3 7 2 1 1 [[2]] 2 4 6 8 1 1 1 1 -k =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
At 12:42 22/08/97, kurt.hornik@ci.tuwien.ac.at wrote:>The following is identical in R and S, but still strange ... > >R> apply(matrix(1:20, nc = 4), 1, table) > [,1] [,2] [,3] [,4] [,5] >[1,] 1 1 1 1 1 >[2,] 1 1 1 1 1 >[3,] 1 1 1 1 1 >[4,] 1 1 1 1 1 >R> apply(matrix(rep(1, 20), nc = 4), 1, table) >[1] 4 4 4 4 4 >R> apply(matrix(c(1:4, 1, 6 : 8), nc = 4), 1, table) >[[1]] >1 3 7 >2 1 1 > >[[2]] >2 4 6 8 >1 1 1 1 > >-kIt is strange, but logical. The problem is that it's an undocumented feature. If the help page said something like "If the calls to FUN return vectors of different lengths then apply returns a list of length dim(x)[MARGIN]" then it would be less surprising. Or would you prefer that apply returns an error message if it can't coerce the result to an array? Martyn =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
On Fri, 22 Aug 1997, Kurt Hornik wrote:> The following is identical in R and S, but still strange ... > > R> apply(matrix(1:20, nc = 4), 1, table) > [,1] [,2] [,3] [,4] [,5] > [1,] 1 1 1 1 1 > [2,] 1 1 1 1 1 > [3,] 1 1 1 1 1 > [4,] 1 1 1 1 1 > R> apply(matrix(rep(1, 20), nc = 4), 1, table) > [1] 4 4 4 4 4Yes it is. This is the sort of thing I meant when I complained about drop=F being the default. The third example should be documented in the man page, which only describes what happens "If each call to FUN returns a vector of length n" In fact the Blue Book help pages and the current S-PLUS help also ignore this possibility. Thomas Lumley ------------------------------------------------------+------ Biostatistics : "Never attribute to malice what : Uni of Washington : can be adequately explained by : Box 357232 : incompetence" - Hanlon's Razor : Seattle WA 98195-7232 : : ------------------------------------------------------------ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html Send "info", "help", or "[un]subscribe" (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-