Module: RObj

Defined in:
lib/R4rb/robj.rb

Class Method Summary collapse

Class Method Details

.<(rcode) ⇒ Object



4
5
6
# File 'lib/R4rb/robj.rb', line 4

def RObj.<(rcode)
  return (R2rb < rcode) 
end

.<<(rcode) ⇒ Object



38
39
40
# File 'lib/R4rb/robj.rb', line 38

def RObj.<<(rcode) 
  RObj.make(rcode)
end

.class(rname) ⇒ Object



8
9
10
# File 'lib/R4rb/robj.rb', line 8

def RObj.class(rname)
  RObj < "class(#{rname})"
end

.exist?(rname) ⇒ Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/R4rb/robj.rb', line 42

def RObj.exist?(rname)
  RObj < "exists(\"#{rname}\")"
end

.make(rcode, first = true) ⇒ Object

temporary R object saved in ruby object!



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/R4rb/robj.rb', line 17

def RObj.make(rcode,first=true)
  mode=RObj.mode(rcode)
  RObj < ".tmpRObj<-(#{rcode})" if first
  code=(first ? ".tmpRObj" : rcode.dup) 
  if ['numeric','logical','complex','character'].include?(mode)
    #if RObj.class(code)=="matrix"
    return (RObj< rcode)
  elsif mode=="list"
    robj={}
    tmpNames=RObj < "names(#{rcode})"
    tmpNames.each_with_index do |nam,i|
       key=(nam.empty? ? i : nam)
       rkey=(nam.empty? ? i : "\""+nam+"\"")
       robj[key]=RObj.make("#{rcode}[[#{rkey}]]",false)
      end
    return robj
  else
    return nil
  end
end

.mode(rcode) ⇒ Object



12
13
14
# File 'lib/R4rb/robj.rb', line 12

def RObj.mode(rcode)
  RObj < "mode(#{rcode})"
end