[R] Trying to Generalize a Function in R

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Fri Aug 10 00:40:47 CEST 2018


" I am thinking that there should be an R command to
tell me about the structure of series"

?str
## perhaps also/instead
?summary

Cheers,
Bert




Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )

On Thu, Aug 9, 2018 at 2:29 PM, Peter Langfelder <peter.langfelder using gmail.com
> wrote:

> Well, your function uses AVB$AVB.Close, so I assumed AVB is a list (a
> data frame can be thought of as a special list). What do you get when
> you type class(AVB)?
>
> Peter
> On Thu, Aug 9, 2018 at 2:24 PM rsherry8 <rsherry8 using comcast.net> wrote:
> >
> > Peter,
> >
> > Thanks for the response. I tired the following command:
> >      AVB[["AVB.Close"]]
> > and I got:
> >      Error in AVB[["AVB.Close"]] : subscript out of bounds
> > Are you assuming that AVB is a data frame? I do not think AVB is a data
> > frame. Is there a way
> > for me to check?
> > 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 <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.
> >
>
> ______________________________________________
> 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.
>

	[[alternative HTML version deleted]]




More information about the R-help mailing list