[R] hash table access, vector access &c

Sam Steingold sds at gnu.org
Tue Jul 5 21:30:02 CEST 2011


> * David Winsemius <qjvafrzvhf at pbzpnfg.arg> [2011-07-05 14:39:09 -0400]:
>
> So you are here demonstrating that you should be using "[["

yes, thanks!

now, how do I extend a frame with new columns based on a hash table?

specifically, I have a frame:

> str(etr.rt)
'data.frame':	75986 obs. of  15 variables:
 $ aaaaaa   : POSIXlt, format: ...
 $ bbbbb    : POSIXlt, format: ...
 $ cccccccc : num  ...
 $ symbol   : Factor w/ 4521 levels "A","AA","AACC",..: 985 985 2322 3677 4486 4486 1607 3677 4486 1279 ...
 $ dddd     : int  500 500 ...
 $ eeeeeeee : num  16.61 5.74 ...

and a hash table:
> str(ysmd.table)
Formal class 'hash' [package "hash"] with 1 slots
  ..@ .xData:<environment: 0x7f0e0e8>
> summary(ysmd.table)
Length  Class   Mode 
  7757   hash     S4
> ysmd.table[[as.character(etr.rt$symbol[[100]])]]
     X.stock market.cap X52.week.low X52.week.high
3122     DFS 1.4606e+10        12.11         26.95
     X3.month.average.daily.volume X50.day.moving.average.price
3122                       6153430                      24.0242


I want to modify etr.rt (or create a new frame etr.rt.md) which would
have all the columns of etr.rt plus 5 additional columns 

market.cap
X52.week.low
X52.week.high
X3.month.average.daily.volume
X50.day.moving.average.price

which for the row number i in etr.rt come from
ysmd.table[[as.character(etr.rt$symbol[[i]])]]
(obviously,

etr.rt$symbol[[i]] == ysmd.table[[as.character(etr.rt$symbol[[i]])]]$X.stock

)

thanks!

-- 
Sam Steingold (http://sds.podval.org/) on CentOS release 5.6 (Final) X 11.0.60900031
http://thereligionofpeace.com http://dhimmi.com http://ffii.org
http://pmw.org.il http://mideasttruth.com http://openvotingconsortium.org
The early bird may get the worm, but the second mouse gets the cheese.



More information about the R-help mailing list