On 07/02/2011 07:50 AM, David Winsemius wrote:
I would like to do some operations inside a function using only one
value for the last dimension of a table/matrix:
tabfn <- function (dfrm, facvec, YN ="event"){
return( Etbl <- do.call(table, dfrm[ , c(facvec, "event") ]) )
# just want Etbl[,,,"TRUE"] or Etbl[,, "TRUE"] or Etbl[,"TRUE"]
}
tbl <- tabfn(testdf, c("x", "y") )
tbl # all value of event returned
At the console it is easy for me to count the number of factors and use
the right number of commas
tbl[ , , "TRUE"] if I only want the slice with that value. How can I do
this programmatically?
Hi David,
I used to do something like this before completely reprogramming the
barNest function.
# set the first dimension (can be the last also) to a number "stat"
sliceargs[[1]] <- x[[stat]]
# for the rest of the dimensions of this array, tack on a comma
for (arg in 2:ndim) sliceargs[[arg]] <- TRUE
sliceargs[[ndim + 1]] <- slice
# "slice" the array
xslice[[stat]] <- do.call("[", sliceargs)
To get the last dimension, just tack commas together for 1:(ndim-1) and
then add the number at the end.
I think Bill Dunlap gave me this solution when I was struggling with it.
Jim
______________________________________________
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.