You are right. It won't be that easy since they are not adjacent. They are spread throughout in no pattern. That's the downside of using simple test data. I am glad you spotted it.
I could have each row search for its family total in the table of family totals. I was concerned it would be slow and was hopeful there was a more efficient way. I should probably test it before jumping to that conclusion On Mar 9, 2015 12:25 AM, "Raul Miller" <[email protected]> wrote: > That'll work if your families are all adjacent. > > If they can be shuffled you'll need to do a bit more work. > > (But if they are not shuffled, why bother?) > > Thanks, > > -- > Raul > > On Mon, Mar 9, 2015 at 12:22 AM, Joe Bogner <[email protected]> wrote: > > This seems like it may be a viable solution: > > > > (1-~ +/\ (~:families)) { famTotal > > > > On Mon, Mar 9, 2015 at 12:15 AM, Joe Bogner <[email protected]> wrote: > > > >> I am doing a +//. on a very large array that I need redistribute the > >> results back to the original positions. > >> > >> The dictionary has a solution that works well on small arrays[1], but > does > >> not work on my large array since it's using = to self classify > >> > >> Example: > >> > >> NB. create 3 fake families across 100 rows > >> families=: 1,(98$2),3 > >> val=: 100 $1 > >> > >> NB. sum by family > >> ] famTotal =: families +//. val > >> 1 98 1 > >> > >> NB. desired output, result distributed to each row > >> ] desired =: famTotal ((+/ .*)=) families > >> 1 98 98 .... 1 > >> > >> > >> NB. confirms desired matches family total > >> (~. ( i.~ families)) { desired > >> 4 3 3 > >> > >> For my very large array: > >> > >> families=.55e6 $ (i.100000) > >> val =: 55e6 $ 1 > >> famTotal =: families +//. val > >> > >> desired =: famTotal ((+/ .*)=) families > >> |out of memory > >> > >> > >> The reason why is because = families results in a huge array. > >> > >> How can I accomplish the same goal efficiently? > >> > >> > >> > >> 1 - http://www.jsoftware.com/help/dictionary/d221.htm > >> 2 - http://www.jsoftware.com/jwiki/Vocabulary/eq > >> > > ---------------------------------------------------------------------- > > 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
