Thanks Roger; you are right. The non overlapping version is something like a interval average. It reduces the number of data points but I dont know how useful it is. I will try the others. Thanks again On Feb 17, 2014 9:57 PM, "Roger Hui" <[email protected]> wrote:
> 20%~ each +/"1 each _20 <\ Prices > > This is not moving average as I understand it, because the windows don't > overlap. You have to use 20 instead of _20. But a better way is: > > avg=: +/ % # > 20 avg\ Prices > > That is, you don't have to box everything up and then apply f to each; you > can give the verb to the adverb, the way verbs and adverbs are meant to > work together. > > > > > > On Mon, Feb 17, 2014 at 6:36 PM, Joe Bogner <[email protected]> wrote: > > > I thought it might be fun to post a J vs R side-by-side comparison. The > > character counts aren't meant to be exact... The solutions are fairly > > similar up until the moving averages. It wasn't meant as a code golf > > exercise. > > > > http://jsbin.com/ihunin/337 > > > > After reading R code for years, I actually think the J version is more > > pleasant to look at > > > > I'd like to add an example where J really shines over R. The data.table > > package in R makes it much more succint than normal R code. The most > stark > > example I came up with so far is the moving average. Are there any other > > ideas? > > > > There's probably a more concise way to express this too: > > plot > 20%~ each +/"1 each _20 <\ Prices > > > > I thought I could get atop or something to work but I gave up after about > > 10 minutes. > > > > > > > > > > > > > > On Mon, Feb 17, 2014 at 12:59 PM, Joe Bogner <[email protected]> > wrote: > > > > > Here is the code: > > > > > > NB. retrieve stock prices from yahoo and do some graphing > > > load 'web/gethttp' > > > load 'tables/csv' > > > load 'plot' > > > > > > URL=:'http://ichart.finance.yahoo.com/table.csv?s=' > > > > > > quote=: 3 : 'fixcsv gethttp URL,y' > > > > > > Quotes=: quote each 'DAL';'UAL' > > > > > > 'DAL UAL'=:Quotes > > > > > > DALd =: |. }. DAL > > > > > > Prices=: > ". each 4{"1 DALd > > > plot Prices > > > > > > MaxPrice=: >./ Prices > > > > > > plotPrices =: 3 : 0 > > > pd (i. # y);(|. ,> y) > > > ) > > > > > > plotTickers =: 3 : 0 > > > Tickers=.y > > > pd 'reset' > > > pd 'key',(, > ' '&, each Tickers) > > > Quotes=.quote each Tickers > > > AllPrices=. ". each > }. each 4{"1 each Quotes > > > plotPrices"1 AllPrices > > > pd 'show' > > > ) > > > plotTickers 'UAL';'DAL';'JBLU' > > > > > > Years=. 4 {. each 0{"1 DALd > > > groupBy=: 4 : '(((~.y) i. y)) ,/. x' > > > YearGroups=:Prices groupBy Year > > > MaxPricePerYear =: >. /"1 YearGroups > > > ]YearKeys=: ". > ~. Year > > > plot YearKeys;MaxPerYear > > > > > > > > > > > > > > > > > > On Mon, Feb 17, 2014 at 12:49 PM, Joe Bogner <[email protected]> > > wrote: > > > > > >> This is a continuation of this thread: > > >> > http://jsoftware.com/pipermail/programming/2014-February/035222.htmlbut > > >> moved to chat. > > >> > > >> I posted a video http://www.youtube.com/watch?v=qXFpgYvbogw with the > > >> intent of showing some of J's capabilities. > > >> > > >> I would be happy to hear any feedback on the video. > > >> > > >> Looking back at it, I wish I bumped up the font size. It's best viewed > > >> full screen. > > >> > > >> I tried to flip through things pretty quickly to fit in as much as > > >> possible. I probably unnecessarily explained things in a few cases. I > > >> still need to practice using the right term for the operations too. > > >> > > >> In terms of my examples, I would like to know if I could put dates > > >> somehow on on X-axis. > > >> > > >> I also worked up an example that used a secondary axis with % change, > > but > > >> I haven't recorded it yet. That might be a continuation. Plotting on a > > >> secondary axis is something that J's plot does real easily compared to > > R. > > >> > > >> Thanks for any feedback > > >> > > > > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
