On Jul 5, 2011, at 12:53 PM, Sam Steingold wrote:

Hi,
I am confused by the way the indexing works.

Actually I suspect you may be confused by how factors work. See below.

I read a table from a csv file like this:

ysmd <- read.csv("ysmd.csv",header=TRUE);

# And note that by default all character columns will become factors.

ysmd.table <- hash();
for (i in 1:length(ysmd$X.stock)) ysmd.table[ysmd$X.stock[i]] <- ysmd[i,];

the first column ("X.stock") is a string (factor):

ysmd$X.stock[[100]]
[1] FLO
7757 Levels: A AA AA- AAAAA AAC AACC AACOU AACOW AADR AAI AAME AAN AAON ... ZZZZT

when I print ysmd.table, I see the data I expect:
...
 ZIOP : ZIOP 402600000 3.03 7.85 707694 6.3717
 ZIP : ZIP 794900000 23.53 31.5 677046 23.2508
 ZIPR : ZIPR 47100000 2.28 3.5 21865 2.4058
 ZIV : ZIV -1 12.2987 17.3862 37455 16.6068
 ZIXI : ZIXI 254900000 2.1 4.88 905849 3.5146
...

moreover,

ysmd.table[['FLO']]
X.stock market.cap X52.week.low X52.week.high X3.month.average.daily.volume 100 FLO 2.984e+09 15.3133 22.37 1021580
   X50.day.moving.average.price
100                      21.3769

quite correctly.
however,

ysmd.table[ysmd$X.stock[[100]]]
<hash> containing 0 key-value pair(s).
 NA : NULL

so, how do I access the hash table element using non-literal strings?
or, how do I convert ysmd$X.stock[[100]] to a string from whatever it is
now?

Have you considered:

 ysmd.table[ as.character( ysmd$X.stock[[100]])  ]

It appears that ysmd$X.stock[[100]] is a factor, and if so, you probably want the character value that its numeric representation points to. This is, of course, guesswork because you have not disclosed what package `hash` comes from, so I do not have the benefit of looking at its help page.


thanks!

--
Sam Steingold (http://sds.podval.org/) on CentOS release 5.6 (Final) X 11.0.60900031

--

David Winsemius, MD
West Hartford, CT

______________________________________________
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.

Reply via email to