Wprowadzenie
daru (Data Analysis in RUby) jest biblioteką do przechowywania, analizy, manipulacji i wizualizacji danych w Ruby.
daru pozwala na łatwe i intuicyjne przetwarzanie danych głównie poprzez 2 struktury danych: Daru::DataFrame i Daru::Vector. Napisany w czystym Ruby, działa ze wszystkimi implementacjami Ruby.Testowany z MRI 2.5.1 i 2.7.1.
wtyczka daru gems
- daru-view
 
daru-view jest do łatwego i interaktywnego tworzenia wykresów w aplikacji internetowej & IRubynotebook. Może działać w każdym frameworku aplikacji internetowych Ruby jak Rails, Sinatra, Nanoc i miejmy nadzieję, że w innych też.
Artykuły/Blogi, które podsumowują potężne cechy daru-view:
- GSoC 2017 daru-view
 - GSoC 2018 Progress Report
 - HighCharts Oficjalny wpis na blogu dotyczący daru-view
 
- daru-io
 
Ten klejnot rozszerza wsparcie dla wielu metod Import i Export z Daru::DataFrame. Ten gem ma na celu pomóc Rubinistom, którzy zajmują się analizą danych lub tworzeniem stron internetowych, służąc jako biblioteka konwersji ogólnego przeznaczenia, która pobiera dane wejściowe w jednym formacie (powiedzmy JSON) i konwertuje je do innego formatu (powiedzmy Avro), jednocześnie sprawiając, że rozpoczęcie analizowania danych z daru jest niezwykle proste. Można przeczytać więcej w SciRuby/blog/daru-io.
Cechy
- Struktury danych:
- Vector – Podstawowy wektor 1-D.
 - DataFrame – 2-D struktura podobna do arkusza kalkulacyjnego do manipulowania i przechowywania zestawów danych. Jest to podstawowa struktura danych daru.
 
 - Kompatybilność z IRuby notebook, statsample, statsample-glm i statsample-timeseries.
 - Wsparcie dla szeregów czasowych.
 - Samodzielnie i hierarchicznie indeksowane struktury danych.
 - Elastyczne i intuicyjne API do manipulacji i analizy danych.
 - Łatwe wykreślanie, statystyki i arytmetyka.
 - Przeróżne iteratory.
 - Opcjonalna optymalizacja prędkości i przestrzeni na MRI z NMatrix i GSL.
 - Łatwe dzielenie, agregowanie i grupowanie danych.
 - Szybka redukcja danych z tabelami przestawnymi dla szybkiego podsumowania danych.
 - Import i eksport danych z i do Excela, CSV, baz danych SQL, ActiveRecord i zwykłych plików tekstowych.
 
Instalacja
$ gem install daru
Podręczniki
Podręczniki dotyczące większości przypadków użycia
- Przegląd większości funkcji daru
 - Podstawowe tworzenie wektorów i DataFrame
 - Szczegółowe użycie Daru::Vector
 - Szczegółowe użycie Daru::DataFrame
 - Wyszukiwanie i łączenie danych w daru
 - Grupowanie, dzielenie i przestawianie danych
 - Używanie danych kategorycznych
 
Wizualizacja
- Wizualizowanie danych za pomocą Daru::DataFrame
 - Plotting using Nyaplot
 - Plotting using GnuplotRB
 - Vector plotting with Gruff
 - DataFrame plotting with Gruff
 
Notebooks on Time series
- Basic Time Series
 - Time Series Analysis and Plotting
 
.
Notebooks on Indexing
- Indexing in Vector
 - Indexing in DataFrame
 
Case Studies
- Logistic Regression Analysis with daru and statsample-.glm
 - Finding and Plotting most heard artists from a Last.fm dataset
 - Analiza imion dziecięcych za pomocą daru
 - Przykładowe użycie danych kategorycznych
 - Przykładowe użycie indeksu kategorycznego
 
Posty na blogu
- Analiza danych w RUby: Podstawowa manipulacja danymi i wykreślanie
 - Analiza danych w RUby: Dzielenie, sortowanie, sortowanie, agregowanie danych i typy danych
 - Wyszukiwanie i łączenie danych w daru
 - Wprowadzenie do analizy zbiorów danych za pomocą biblioteki daru
 
Szeregi czasowe
- Analiza szeregów czasowych w daru
 - Data Offsets in Daru
 
Categorical Data
- Categorical Index
 - Categorical Data
 - Visualization with Categorical Data
 
Basic Usage
daru eksponuje dwie główne struktury danych: DataFrame i Vector. Wektor jest podstawową strukturą 1-D odpowiadającą etykietowanej tablicy, podczas gdy DataFrame – podstawowa struktura danych daru – jest 2-D strukturą podobną do arkusza kalkulacyjnego, służącą do manipulowania i przechowywania zestawów danych.
Podstawowa intrializacja DataFrame.
data_frame = Daru::DataFrame.new( { 'Beer' => , 'Gallons sold' => }, index: )data_frame

Wczytywanie danych z plików CSV.
df = Daru::DataFrame.from_csv('TradeoffData.csv')

Podstawowa manipulacja danymi
Wybieranie wierszy.
data_frame.row

Wybieranie kolumn.
data_frame

Zakres wierszy.
data_frame.row

Pierwsze 2 wiersze.
data_frame.first(2)

Ostatnie 2 wiersze.
data_frame.last(2)

Dodanie nowej kolumny.
data_frame =

Tworzenie nowej kolumny na podstawie danych w innych kolumnach.
data_frame = data_frame - data_frame

Wybór na podstawie warunku
Wybór krajów na podstawie liczby galonów sprzedanych w każdym z nich. Używamy składni podobnej do tej zdefiniowanej przez Arela, tj. poprzez użycie klauzuli where.
data_frame.where(data_frame.lt(300))

Możesz przekazać kombinację operacji boolean do metody #where i powinna ona działać dobrze:
data_frame.where( data_frame .in() .and( data_frame.gt(520).or(data_frame.lt(250)) ))

Wykreślanie wykresów
Daru obsługuje wykreślanie interaktywnych wykresów za pomocą nyaplot. Możesz łatwo utworzyć wykres za pomocą metody #plot. Tutaj wykreślamy sprzedane galony na osi Y i nazwę marki na osi X w wykresie słupkowym.
data_frame.plot type: :bar, x: 'Beer', y: 'Gallons sold' do |plot, diagram| plot.x_label "Beer" plot.y_label "Gallons Sold" plot.yrange plot.width 500 plot.height 400end

Oprócz nyaplot, daru obsługuje również wykreślanie po wyjęciu z pudełka za pomocą gnuplotrb.
Dokumentacja
Dokumenty można znaleźć tutaj.
Wnoszenie wkładu
Wybierz cechę z mapy drogowej lub issue trackera albo wymyśl własną i wyślij mi Pull Request!
Dla szczegółów zobacz CONTRIBUTING.
Podziękowania
- Google i Ruby Science Foundation za grant Google Summer of Code 2016 za zwiększenie prędkości i wdrożenie wsparcia dla danych kategorycznych. Specjalne podziękowania dla @lokeshh, @zverok i @agisga za ich wysiłki.
 - Google i Ruby Science Foundation za grant Google Summer of Code 2015 za dalszy rozwój daru i zintegrowanie go z innymi rubinowymi klejnotami.
 - Dziękuję last.fm za udostępnienie danych użytkowników publicznie.
 
.