[R] Data Structures
Randall Skelton
rhskelto at atm.ox.ac.uk
Fri Nov 16 19:19:30 CET 2001
Hi all,
Thanks to everyone who replied to my change of case question... I doubt I
would have ever randomly guessed 'toupper' or 'tolower'.
I am trying to be cleaver[1] and make a flexible data structure in R. I
have a relatively large quantity of data that can be broadly grouped into
blocks/chunks which are identical in their form:
blockid = numeric
blocktype = string
dbname = string
tblname = string
quality = numeric
errortype = numeric
columnamount = data vector
distr = data vector
...
I have grouped the above into a list as it contains mixed variable types.
Now is where things get a little more interesting... I have a large number
of the above blocks which I would like to assemble into an array of
lists or perhaps a 'list of lists' (if I choose to include some other
ancillary variables that apply to the global list structure). Of course,
I am trying to do this generically in a function:
for (i in 1:N) {
...
# Get each data block
block <- get.DataBlockFromDb(db,tbl,name);
...
}
where N is of unknown size (depends on the amount of data I am trying to
assimilate) and block is my list object from above. I have tried to make
an array of list objects (like an array of structures in C?) but this
doesn't seem to work. i.e.
block[i] <- get.DataBlockFromDb(db,tbl,name);
where block is some form of a 1 dimensional array.
About the only thing I can seem to do is make a list of lists but I cannot
figure out how to create such a list in my for-loop construction above?
Is there a function in R that would allow me to add/remove a new object to
an already defined list? i.e. is it possible to 'grow' or 'shrink' a
previously defined list? If nothing like this exists, is it *possible* to
create a set of functions in R or C?
Cheers,
Randall
[1] I am using the term 'cleaver' rather loosely here-- especially given
the amount of time and thought this is taking. What this really boils
down to is how to encapsulate complicated data structures in R so that I
can make an object and write code that then will act appropriately on the
object. In my case, each block contains data which is not necessarily
taken from the same source and may be of completely different quality,
length, etc. In this case, it isn't particularly clear to me how I can
invoke a standard 2 dimensional table (aka data frame). Am I missing
something?
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list