Method: Rust::Matrix.pull_variable

Defined in:
lib/rust/core/types/matrix.rb

.pull_variable(variable, type, klass) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rust/core/types/matrix.rb', line 13

def self.pull_variable(variable, type, klass)
    if Rust._pull("length(#{variable})") == 1
        core = ::Matrix[[Rust._pull("#{variable}[1]")]]
    else
        core = Rust._pull(variable)
    end
    row_names = [Rust["rownames(#{variable})"]].flatten
    column_names = [Rust["colnames(#{variable})"]].flatten
    
    row_names = nil if row_names.all? { |v| v == nil }
    column_names = nil if column_names.all? { |v| v == nil }
    
    Matrix.new(core, row_names, column_names)
end