[R] slow access to matrix dimnames

Gabor Grothendieck ggrothendieck at gmail.com
Fri Jan 4 21:14:15 CET 2008


That's a good point. Using the mat we used earlier we have:

"%$%" <- function(data, field) data[, as.character(subsitute(field))]
mat %$% c

Note that there is one difference between $ and [ .  Namely,
$ does not evaluate its right hand argument whereas [ does.



On Jan 4, 2008 3:05 PM, Bert Gunter <gunter.berton at gene.com> wrote:
> Why do you want to do this? X[,"cname"] gives the column named "cname" of
> matrix X (as a vector, unless drop=FALSE). The $ operator on data frames is
> essentially equivalent to this, anyway (see ? Extract).
>
> -- Bert Gunter
> Genentech
>
>
>
>
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Dan Dube
> Sent: Friday, January 04, 2008 11:29 AM
> To: r-help at r-project.org
> Subject: [R] slow access to matrix dimnames
>
> hello,
>
> i have been trying to convert my data frames to matrices in the hopes of
> speeding up some of my more complicated scripts.
>
> to assist with this, i am trying to create a "matrix column operator"
> like $:
> "%$%" = function(data,field) {
>        as.numeric(data[,grep(field,unlist(dimnames(data)[2]))])
> }
>
> the idea here is that you can use a matrix like a dataframe:
> matrix%$%"fieldname"
>
> i am getting this matrix by converting a dataframe:
> df = read.csv("data.csv")
> matrix = data.matrix(df,rownames.force=FALSE)
>
> this sets rownames to "NULL", but there is still an entry at
> dimnames(matrix)[1], and so i have to access the actual column names as
> dimnames(matrix)[2].  if there were only one dimension of dimnames, this
> operator works quickly, but when i have to access [2], it is super slow.
>
> am i way off base trying to do this?  i'd like to have the ability to
> talk about the columns by name, since they may not always be in the same
> place.  maybe i am making it more complicated than necessary?
>
> thanks!
>
> dan
>
> ______________________________________________
> 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.
>
> ______________________________________________
> 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.
>




More information about the R-help mailing list