Class: CADataFramePivot
- Inherits:
-
Object
- Object
- CADataFramePivot
- Defined in:
- lib/carray/dataframe/dataframe.rb
Instance Method Summary collapse
-
#initialize(dataframe, name1, name2) ⇒ CADataFramePivot
constructor
A new instance of CADataFramePivot.
- #table(&block) ⇒ Object
Constructor Details
#initialize(dataframe, name1, name2) ⇒ CADataFramePivot
Returns a new instance of CADataFramePivot.
1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 |
# File 'lib/carray/dataframe/dataframe.rb', line 1435 def initialize (dataframe, name1, name2) @dataframe = dataframe case name1 when Hash name1, list = name1.first @column1 = @dataframe.col(name1) @keys1 = list.to_ca else @column1 = @dataframe.col(name1) @keys1 = @column1.uniq.sort end case name2 when Hash name2, list = name2.first @column2 = @dataframe.col(name2) @keys2 = list else @column2 = @dataframe.col(name2) @keys2 = @column2.uniq.sort end @addrs = {} @keys1.each do |k1| @keys2.each do |k2| @addrs[[k1,k2]] = (@column1.eq(k1) & @column2.eq(k2)).where end end end |
Instance Method Details
#table(&block) ⇒ Object
1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 |
# File 'lib/carray/dataframe/dataframe.rb', line 1463 def table (&block) columns = {} @keys2.each do |k2| columns[k2] = CArray.object(@keys1.size) { UNDEF } end @keys1.each_with_index do |k1, i| @keys2.each do |k2| columns[k2][i] = @dataframe[@addrs[[k1,k2]]].execute(&block) end end return CADataFrame.new(columns, row_index: @keys1) end |