[R] Using string to call/manipulate an object

David Winsemius dwinsemius at comcast.net
Wed Feb 23 17:17:39 CET 2011


On Feb 23, 2011, at 10:23 AM, Kushan Thakkar wrote:

> @Scott:
>
> I can't just use
>
> colnames(IBM) <- c("open","high","low","close","vol")

Well, you can.
>
> I have nearly 100 tickers stored in an vector and I am looping  
> through them. Its not a good idea to hardcode all of them.

Perhaps putting the ticker objects in a list and then:

  lapply( tickerlist, "colnames<-",  
c("open","high","low","close","vol") )

(If you provide an example with the level of complexity of the  
problem ... you get tested answers rather than guesses.)

-- 
David.


>
> @David:
> Column names is just an example. I have a long script that takes in  
> an xts object and performs a series of manipulation. I want to to be  
> able to run the same program on a series of xts objects through a  
> loop. For that I need to be able to able to dynamically point/refer  
> to those xts object inside my loop.
>
>
> On Wed, Feb 23, 2011 at 8:58 AM, David Winsemius <dwinsemius at comcast.net 
> > wrote:
>
> On Feb 23, 2011, at 8:55 AM, Kushan Thakkar wrote:
>
> I am using getSymbols function from quantmod package to get price  
> data from
> internet.
>
> Currently I have:
>
> my.ticker <- "IBM"
> getSymbols(my.ticker,src="google")
>
> This  creates an xts object named my.ticker which contains  
> historical price
> data for IBM.
>
> How can I call and manipulating this xts object using my original  
> string
> my.ticker?
>
> I want to do:
> colnames(my.ticker) <- c("open","high","low","close","vol")
>
> If you want to change the colnames (an attribute) of the object now  
> named "IBM" in your global environment, then look a:
>
> ?attributes
> ?attr
>
>
>
> However, this does not work as my.ticker refers to the string "IBM"  
> rather
> than the xts object called IBM.
>
> Out of desperation, I have also tried:
> colnames(paste(my.ticker)) <- c("open","high","low","close","vol")
> colnames(as.xts(my.ticker)) <- c("open","high","low","close","vol")
>
> But why are you do this??? It already has a perfectly servicable set  
> of names:
>
> > colnames(get(my.ticker))
> [1] "IBM.Open"   "IBM.High"   "IBM.Low"    "IBM.Close"  "IBM.Volume"
>
> -- 
> David.
>
> Thanks
> Kushan
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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.
>
> David Winsemius, MD
> West Hartford, CT
>
>

David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list