[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