1

I am trying to write a function that takes 3 tuples. Each tuple contains two lists which are first divided. This results in 3 lists. Then I want to take the Mean of all the columns. I can do this in two steps:

d = Divide[#1, #2] & @@@  { {{1, 2, 3}, {4, 5, 6}}  , {{7, 8, 9}, {10,
  11, 12}} , {{13, 14, 15}, {16, 17, 18} } }
Mean[d]

However I would like to put this all on one line. I have tried a couple different things all smilar to

Mean[#] & @ Divide[#1, #2] & @@@  { {{1, 2, 3}, {4, 5, 6}}  , {{7, 8, 9}, {10,
  11, 12}} , {{13, 14, 15}, {16, 17, 18} } }

The problem is the mean is not applied to the entire list but rather one level inside, which does not give the desired output.

the desired out put is:

{47/80, 608/935, 25/36}
olliepower
  • 2,254
  • 2
  • 21
  • 34

1 Answers1

4
list = {{{1, 2, 3}, {4, 5, 6}}, {{7, 8, 9}, {10, 11, 12}}, {{13, 14, 
     15}, {16, 17, 18}}};

Mean[Divide @@@ #] &@ list

Composition[Mean, Divide @@@ # &]@list

Divide @@@ list // Mean

Mean[Divide @@@ list]

Mean @ (Divide @@@ list)

It seems that first and the second may be considered the best since you don't have to put anything after the list.

Take a look at the topic I've linked too.

Kuba
  • 136,707
  • 13
  • 279
  • 740