[R] slow access to matrix dimnames

Bert Gunter gunter.berton at gene.com
Fri Jan 4 21:05:14 CET 2008


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.




More information about the R-help mailing list