[R] Trying to Generalize a Function in R

Peter Langfelder peter@|@ng|e|der @end|ng |rom gm@||@com
Thu Aug 9 21:46:01 CEST 2018


If I understand it correctly, the function getSymbols creates a
variable with the name being the stock symbol. Then use the function
get(symbol) to retrieve the value of the variable whose name is
contained in the character string `symbol'. Assign that to a variable
(e.g. AVB). You may also have to modify the names of the components
you retrieve from the list AVB. For that, you can use
AVB[["AVB.Close"]] instead of AVB$AVB.Close. You can them use
something like AVB[[paste0(symbol, ".Close"]] to generalize the
retrieval of list components.

HTH,

Peter
On Thu, Aug 9, 2018 at 12:40 PM rsherry8 <rsherry8 using comcast.net> wrote:
>
>
> I wrote the following function:
>
> # This method gets historical stock data for the stock Avalon Bay whose
> symbol is AVB.
> getReturns <- function(norm = FALSE)
> {
>      library(quantmod)
>
>      getSymbols("AVB", src = "yahoo", from = start, to = end)
>      length = length(  AVB$AVB.Close )
>      close = as.numeric( AVB$AVB.Close )
>      cat( "length = ", length(close ), "\n" )
>      for( i in 1:length-1 )
>          diff[i] = ((close[i+1] - close[i]) ) / close[i]
>      u = mean(diff)
>      stdDev = sd(diff)
>      cat( "stdDev = ", stdDev, "\n" )
>
>      if ( norm == TRUE ) {
>          diff = (diff - u)
>          diff = diff / stdDev
>      }
>      return (diff)
> }
>
> I would like to generalize it to work for any stock by passing in the
> stock symbol. So the header for the
> function would be:
>
> getReturns <- function(symbol, norm = FALSE)
>
> Now how do I update this line:
>      length = length(  AVB$AVB.Close )
> This statement will not work:
>      length = length(  symbol$AVB.Close )
> because the name that holds the closing price is a function of the stock
> symbol.
>
> Thanks,
> Bob
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.




More information about the R-help mailing list