On Wed, 2007-01-24 at 12:31 -0800, lalitha viswanath
wrote:> Hi
> I have a table read from a mysql database which is of
> the kind
>
> clusterid clockrate
>
> I obtained this table in R as
> clockrates_table <-sqlQuery(channel,"select....");
> I have a function within which I wish to extract the
> clusterid for a given cluster.
> Although I know that there is just one row per
> clusterid in the data frame, I am using subset to
> extract the clockrate.
>
> clockrate = subset(clockrates_table, clusterid==15,
> select=c(clockrate));
You don't need the ';', though some will argue that it is a personal
preference. Also, the c(...) around 'clockrate' is not needed when only
one column is being selected.
> Is there any way of extracting the clockrate without
> using subset.
You could use:
clockrates_table[clockrates_table$clusterid == 15,
clockrates_table$clockrate]
or perhaps:
with(clockrates_table, clockrates_table[clusterid == 15, clockrate])
See ?with
If you did not need the conditional, you could of course use:
clockrates_table$clockrate
or:
clockrates_table[["clockrate"]]
or:
clockrates_table[, "clockrate"]
or:
with(clockrates_table, clockrate)
My personal preference is to use subset(), as for me, it makes the code
easier to read.
> In the help section for subset, it mentioned to "see
> also: [,..."
> However I could find no mention for this entry when I
> searched as "?[", etc.
Try: ?"[" or ?Extract
Note the placement of the quotes in the first case.
> The R manuals also, despite discussing complex
> libraries, techniques etc, dont always seem to provide
> such handy hints/tips and tricks for manipulating
> data, which is a first stumbling block for newbies
> like me.
> I would greatly appreciate if you could point me to
> such resources as well, for future reference.
If you have not yet, reading the Posting Guide, for which there is a
link at the bottom of each e-mail is a good place to start.
Also, see ?RSiteSearch for a function which will enable you to search
the e-mail list archives.
HTH,
Marc Schwartz