CrossTable
Cross tabulation (Pivot table) utility
to convert table data to a pivot table form.
Source (List table)
os | lang | price |
---|
win | ruby | 123 |
linux | ruby | 12 |
mac | php | 270 |
win | java | 560 |
win | php | 750 |
linux | java | 950 |
win | java | 1200 |
win | php | 500 |
mac | php | 10 |
mac | java | 566 |
win | ruby | 210 |
Destination (Pivot table)
| ruby | java | php |
---|
win | 333 | 1760 | 1250 |
linux | 12 | 950 | 0 |
mac | 0 | 566 | 280 |
The test code to get the sample table above.
Installation
Add this line to your application's Gemfile:
gem 'cross_table'
And then execute:
$ bundle
Or install it yourself as:
$ gem install cross_table
Usage
Records Count
require 'cross_table'
cross_tbl = CrossTable.counts_from(
recs: [],
group_rules: [],
y_keys: [],
x_keys: []
ret_type: nil
)
Sample test code of CrossTable.counts_from
Sample data and group_rule setting
Fields Summary
require 'cross_table'
cross_tbl = CrossTable.sums_from(
recs: [],
field: :fld_name
group_rules: [],
y_keys: [],
x_keys: []
ret_type: nil
)
Sample test code of CrossTable.sums_from
Sample data and group_rule setting
Fields Average
require 'cross_table'
cross_tbl = CrossTable.avgs_from(
recs: [],
field: :fld_name
group_rules: [],
y_keys: [],
x_keys: []
ret_type: nil
)
Sample test code of CrossTable.avgs_from
Sample data and group_rule setting
Arbitrary property of grouped records
require 'cross_table'
cross_tbl = CrossTable.from(
recs: [],
group_rules: [],
y_keys: [],
x_keys: []
ret_type: nil
&aggr_proc
)
Sample test code of CrossTable.from to get a Minumum value.
Sample data and group_rule setting
Multiple Keys Grouping
Sample test code of using multilpe keys.
Development
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/masa-kunikata/cross_table.
License
The gem is available as open source under the terms of the MIT License.