Какой лучший путь в Ruby до средних наборов в массиве? -- ruby пол Связанный проблема

What's the best way in Ruby to average sets in an array?


2
vote

проблема

русский

Учитывая следующие простые набор данных, какой лучший способ среднего значения значения для наборов 0 25 53 и 80.

 <код>   [["0", "148.5"],    ["0", "146.5"],    ["0", "148.6"],    ["0", "202.3"],    ["25", "145.7"],    ["25", "145.5"],    ["25", "147.4"],    ["25", "147.3"],    ["53", "150.4"],    ["53", "147.6"],    ["53", "147.8"],    ["53", "215.4"],    ["80", "150.4"],    ["80", "149.4"],    ["80", "148.0"],    ["80", "149.9"]]   
Английский оригинал

Given the following simple data set, what is the best way to average the values for the sets 0 25 53 and 80.

  [["0", "148.5"],    ["0", "146.5"],    ["0", "148.6"],    ["0", "202.3"],    ["25", "145.7"],    ["25", "145.5"],    ["25", "147.4"],    ["25", "147.3"],    ["53", "150.4"],    ["53", "147.6"],    ["53", "147.8"],    ["53", "215.4"],    ["80", "150.4"],    ["80", "149.4"],    ["80", "148.0"],    ["80", "149.9"]] 
</div
  
   
   

Список ответов

6
 
vote
vote
Лучший ответ
 

Это достаточно просто с вводом. Я часто реализую метод General Group_by в проектах, которые помогут с такими людьми.

Если данные имеют большие и вопросы производительности, считают, используя цифровую библиотеку или базу данных, если это необходимо.

 <код> c6  
 

It's simple enough with inject. I often implement a general group_by method in projects to help with stuff like this.

If data is large and performance matters consider using a numeric library or database if appropriate.

data = [ ... ]  groups = data.inject({}) do |hash, pair|    hash[pair.first] ||= []   hash[pair.first] << pair.last.to_f   hash end  groups.inject({}) do |hash, pair|    hash[pair.first] = pair.last.inject(0,&:+) / pair.last.size   hash end 
</div
 
 
     
     
1
 
vote

Использование ввода с хешем даст плохую производительность (вы повторно присваиваете заметку var при каждой итерации). Если вы на 1,9, перечислителю реализуют метод <код> c7 , который можно использовать для того, чтобы сделать код немного более очевидным:

 <код> c8  

<Код> c9 легко реализован как

 <код> int f1(int *a, int c) {     *a = c - 2; /* <-- */     c = c*2 - (*a);     printf("a= %d c= %d ", *a, c);     return c - *a; } 0  

Тот факт, что ваши данные строки довольно неудобны, я рекомендую избегать того, когда это возможно.

 

Using inject with a hash will yield poor performance (you're re-assigning the memo var at every iteration). If you're on 1.9, Enumerable implements the method group_by, which can be used to make the code a little more obvious:

result = array.map{ |row| [row.first.to_i, row.last.to_f] }.group_by(&:first) result.each_pair do |key, values|   result[key] = values.average end 

Array#average is easily implemented as

class Array   def average     inject(0.0) { |sum, e| sum + e } / length   end end 

The fact that your data is strings is quite inconvenient, I recommend avoiding that whenever possible.

</div
 
 
 
 

Связанный проблема

2  Как я могу дублировать имя класса Ruby Core и все еще использую этот класс Core в моем классе?  ( How can i duplicate a ruby core class name and still use that core class in my c ) 
Я создаю очень ограниченный класс времени, в котором я хочу использовать метод анализа разбора Core Time Class. Так что я в конечном итоге с чем-то вроде ... ...

0  Есть ли больше рубилийского способа сделать emput_val = [input_val, max] .min?  ( Is there a more rubylike way to do output val input val max min ) 
Иногда мне нужно что-то подобное: <код> output_val = ( input_val < max ) ? input_val : max И если я чувствую себя скупой в пространстве, я мог бы выбрат...

0  Ruby On Rails - Включение клиента скачать видео  ( Ruby on rails enabling client to download videos ) 
Требование - у меня есть видео, размещенное на моем сервере, пользователь должен быть в состоянии загрузить файл, нажав на ссылку. Я следую инструкциям, при...

1  Теоретически безопасны для переопределения любого метода Ruby, который не начинается с подчеркивания?  ( Is it theoretically safe to redefine any ruby method that doesnt begin with und ) 
Например, это теоретически безопасно для модификации <код> Object#object_id , поскольку всегда есть <код> Object#__id__ , если вам действительно нужно знать, ...

1  Как обновить Ruby с 1.9.3 до 2.3.1 в Ubuntu 14.04 32 бит?  ( How to update ruby from 1 9 3 to 2 3 1 in ubuntu 14 04 32 bit ) 
Теперь я использую Ubuntu 14.04 32-битная ОС. Я ранее установил Ruby 1.9.3, и теперь я пытаюсь установить Ruby 2.3.1, используя «rbenv install -v 2.3.1». Когд...

1  Логические ценности не "читают" в рельсах  ( Boolean values not being read in rails ) 
Я импортировал некоторые значения из Excel, используя ROO на логические поля в моем приложении Rails. В консоль рельсов Похоже, что все работает нормально, ...

7  Ruby Regexp Обработка NBSP  ( Ruby regexp handling of nbsp ) 
в Ruby 1.9.3 Двигатель Regex не лечит NBSP ( U00A0) как пространство (ы). Это часто облом для меня. Так мой вопрос, будет ли это изменение в 2.0? Если нет, ...

0  Ошибка обновления записи  ( Error updating a record ) 
Я получаю ошибку mysql: #update (ActiveReCord :: authentInvalid) "mysql :: Ошибка: # hy 000got Ошибка 139 из механизма хранения: При попытке обновить те...

52  В чем разница между использованием .Exists?, И. Представляют? в рубине?  ( What is the difference between using exists and present in ruby ) 
Я хочу убедиться, что я использую их для правильного случая и хотите знать любые тонкости. Кажется, они функционируют одинаково, что нужно проверить, было ли ...

1  Сводка веб-страницы с Ruby  ( Web page summary with ruby ) 
Может кто-нибудь рекомендовать библиотеку Ruby для создания сводки данного URL? То, что я имею в виду, это сводка одно- или двух предложений, как видно в резу...

9  Что нужно учитывать при принятии решения между MySQL и Amazon's SimpledB для приложения ROR?  ( What do you need to take into consideration when deciding between mysql and amaz ) 
Я только начинаю делать исследования в целесообразности использования SimpleDB Service Amazon в качестве DataStore для ROR Application, я планирую построить. ...

1  Rails link_to запрос params - выбор в элементе на следующей странице  ( Rails link to query params selecting in item on the next page ) 
прямо сейчас у меня <код> link_to . Похоже на кнопку пользователю. Это кнопка обновления, поэтому он направляет пользователь на страницу планов. Я не только...

11  Как настроить «Приложение / LD + JSON» Schema.org Meta Data в приложении Rails 4  ( How to setup application ldjson schema org meta data in rails 4 app ) 
Я хочу настроить метаданные Schema.org с помощью JSON LD. Например, следующая ссылка использует Ghost, и она имеет «приложение / LD + JSON» Meta Data. http:/...

3  Разница между отправкой (: method_name) и методом (: method_name) .call?  ( Is there difference between sendmethod name and methodmethod name call ) 
Есть ли разница между <код> send и <код> method().call в ruby? <код> 1.send(:to_f) => 1.0 1.method(:to_f).call => 1.0 оба кажется же для меня, хотя. ...

7  Rails: Размер кеша в файле управления  ( Rails control file store cache size ) 
Документация для кэша на основе файлов в Rails говорит: Обратите внимание, что кеш будет расти, пока не будет заполнен диск, если вы не Периодически очищ...

Связанный проблема

2  Как я могу дублировать имя класса Ruby Core и все еще использую этот класс Core в моем классе? 
0  Есть ли больше рубилийского способа сделать emput_val = [input_val, max] .min? 
0  Ruby On Rails - Включение клиента скачать видео 
1  Теоретически безопасны для переопределения любого метода Ruby, который не начинается с подчеркивания? 
1  Как обновить Ruby с 1.9.3 до 2.3.1 в Ubuntu 14.04 32 бит? 
1  Логические ценности не "читают" в рельсах 
7  Ruby Regexp Обработка NBSP 
0  Ошибка обновления записи 
52  В чем разница между использованием .Exists?, И. Представляют? в рубине? 
1  Сводка веб-страницы с Ruby 
9  Что нужно учитывать при принятии решения между MySQL и Amazon's SimpledB для приложения ROR? 
1  Rails link_to запрос params - выбор в элементе на следующей странице 
11  Как настроить «Приложение / LD + JSON» Schema.org Meta Data в приложении Rails 4 
3  Разница между отправкой (: method_name) и методом (: method_name) .call? 
7  Rails: Размер кеша в файле управления