Duncan,

Thanks for the response. I tired the following:
    >  series <- getSymbols("AVB", src = "yahoo", from = start, to = end)
    > series[0]
        character(0)
    > nrow( series )
        NULL
nrow( series ) returned NULL. I do not understand why. I am thinking that there should be an R command to tell me about the structure of series. I tried: typeof( series ) and got: "character". Is there a better command for
me to use other than typeof?

I also tried this command:
    c1 <- as.numeric(series[, paste0(symbol, ".Close")])
where symbol held the value "AVB" and I got:
    Error in series[, paste0(symbol, ".Close")] :
    incorrect number of dimensions

Please help.
Thanks,
Bob

On 8/9/2018 3:46 PM, Peter Langfelder wrote:
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 <rsher...@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@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.

______________________________________________
R-help@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.

Reply via email to