Module: DataBlockToR
- Includes:
- BlockToRSupport
- Defined in:
- lib/statsailr/block_to_r/sts_block_to_r.rb
Class Method Summary collapse
Class Method Details
.create_function(blk) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/statsailr/block_to_r/sts_block_to_r.rb', line 48 def self.create_function( blk ) load_datasailr_library() out_ds = blk.out if set_ds = blk.opts["set"] else raise "DATA block requires set= option for input dataset" end puts "Processing data [input:#{set_ds.to_s} ouput:#{out_ds.to_s}]" ds_script = blk.script datasailr_func = RBridge.create_function_call( "sail" , {"df" => set_ds.to_r_symbol, "code" => RBridge.create_strvec([ds_script])} ) r_func = RBridge.create_assign_function( out_ds.to_s , datasailr_func ) end |
.load_datasailr_library ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/statsailr/block_to_r/sts_block_to_r.rb', line 31 def self.load_datasailr_library if ! @datasailr_library_loaded begin lib_func1 = RBridge.create_library_function("datasailr") result = RBridge.exec_function(lib_func1) @datasailr_library_loaded = true rescue => err puts "ERROR: 'datasailr' package cannot be found in the following R library paths." libpath = RBridge.create_function_call(".libPaths", {}) RBridge.exec_function_no_return( RBridge.create_function_call("print", {"x" => libpath})) puts "Please make sure that the package is installed in one of the libraries." err.set_backtrace([]) raise err, "DATA block evaluation failed" end end end |