[R] Access only part of last dimension of table/matrix

David Winsemius dwinsemius at comcast.net
Sat Jul 2 01:21:45 CEST 2011


On Jul 1, 2011, at 5:50 PM, 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:

Sorry, I had meant to poste a test dataset:

testdf <- data.frame(x=sample(letters[1:5], 25, replace=TRUE),
                       y=sample(letters[1:5], 25, replace=TRUE),
                       z=sample(letters[1:5], 25, replace=TRUE),
                       event=sample(c(TRUE, FALSE), 25, replace=TRUE) )

>
> 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?
>

I did come up with a solution:

apply(etbl2, 1:(length(dim(Etbl2))-1), "[", 2)

Doesn't seem as elegant as I might have liked but it "works". And I  
had puzzled and searched in the archives, SO, and multiple books  
without finding a worked example.


> Thnks.
>
> -- 
> David.
>
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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.

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list