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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Dan Dube > Sent: Friday, January 04, 2008 11:29 AM > To: r-help@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@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@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@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.