org.ddahl.rscala

RClient

class RClient extends Dynamic

An interface to an R interpreter.

An object R is the instance of this class available in a Scala interpreter created by calling the function scala from the package rscala. It is through this instance R that callbacks to the original R interpreter are possible.

In a Scala application, an instance of this class is created using its companion object. See below. The paths of the rscala's JARs (for all supported versions of Scala) are available from R using rscala::.rscalaJar(). To get just the JAR for Scala 2.12, for example, use rscala::.rscalaJar("2.12").

This class is threadsafe.

val R = org.ddahl.rscala.RClient()

val a = R.evalD0("rnorm(8)")
val b = R.evalD1("rnorm(8)")
val c = R.evalD2("matrix(rnorm(8),nrow=4)")

R.set("ages", Array(4,2,7,9))
R.ages = Array(4,2,7,9)
println(R.getI1("ages").mkString("<",", ",">"))

R eval """
  v <- rbinom(8,size=10,prob=0.4)
  m <- matrix(v,nrow=4)
"""

val v1 = R.get("v")
val v2 = R.get("v")._1.asInstanceOf[Array[Int]]   // This works, but is not very convenient
val v3 = R.v._1.asInstanceOf[Array[Int]]          // Slightly better
val v4 = R.getI0("v")   // Get the first element of R's "v" as a Int
val v5 = R.getI1("v")   // Get R's "v" as an Array[Int]
val v6 = R.getI2("m")   // Get R's "m" as an Array[Array[Int]]
Linear Supertypes
Dynamic, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. RClient
  2. Dynamic
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def cached(identifier: String): Any

    For rscala developers only: Returns a value previously cached for the R interpreter.

  8. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  9. def debug: Boolean

    For rscala developers only: Returns TRUE if debugging output is enabled.

  10. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  11. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  12. def eval(snippet: String): Unit

    Calls eval(snippet,true).

  13. def eval(snippet: String, evalOnly: Boolean, asReference: Boolean): (Any, String)

    Evaluates snippet in the R interpreter.

    Evaluates snippet in the R interpreter.

    Returns null if evalOnly. If !evalOnly, the last result of the R expression is returned. The result is converted if asReference is false and the conversion is supported, otherwise a reference is returned. Conversion to integers, doubles, Booleans, and strings are supported, as are vectors (i.e. arrays) and matrices (i.e. retangular arrays of arrays) of these types. The static type of the result, however, is Any so using the method evalXY (where X is I, D, B, S, or R and Y is 0, 1, or 2) may be more convenient (e.g. evalD0).

  14. def evalD0(snippet: String): Double

    Calls eval(snippet,true) and returns the result using getD0.

  15. def evalD1(snippet: String): Array[Double]

    Calls eval(snippet,true) and returns the result using getD1.

  16. def evalD2(snippet: String): Array[Array[Double]]

    Calls eval(snippet,true) and returns the result using getD2.

  17. def evalI0(snippet: String): Int

    Calls eval(snippet,true) and returns the result using getI0.

  18. def evalI1(snippet: String): Array[Int]

    Calls eval(snippet,true) and returns the result using getI1.

  19. def evalI2(snippet: String): Array[Array[Int]]

    Calls eval(snippet,true) and returns the result using getI2.

  20. def evalL0(snippet: String): Boolean

    Calls eval(snippet,true) and returns the result using getL0.

  21. def evalL1(snippet: String): Array[Boolean]

    Calls eval(snippet,true) and returns the result using getL1.

  22. def evalL2(snippet: String): Array[Array[Boolean]]

    Calls eval(snippet,true) and returns the result using getL2.

  23. def evalR0(snippet: String): Byte

    Calls eval(snippet,true) and returns the result using getR0.

  24. def evalR1(snippet: String): Array[Byte]

    Calls eval(snippet,true) and returns the result using getR1.

  25. def evalR2(snippet: String): Array[Array[Byte]]

    Calls eval(snippet,true) and returns the result using getR2.

  26. def evalReference(snippet: String): PersistentReference

    Calls eval(snippet,true) and returns the result using getReference.

  27. def evalS0(snippet: String): String

    Calls eval(snippet,true) and returns the result using getS0.

  28. def evalS1(snippet: String): Array[String]

    Calls eval(snippet,true) and returns the result using getS1.

  29. def evalS2(snippet: String): Array[Array[String]]

    Calls eval(snippet,true) and returns the result using getS2.

  30. def exit(): Unit

    Closes the interface to the R interpreter.

    Closes the interface to the R interpreter.

    Subsequent calls to the other methods will fail.

  31. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  32. def get(identifier: String, asReference: Boolean = false): (Any, String)

    Returns the value of identifier in the R interpreter.

    Returns the value of identifier in the R interpreter. The static type of the result is (Any,String), where the first element is the value and the second is the runtime type.

    Conversion to integers, doubles, Booleans, and strings are supported, as are vectors (i.e. arrays) and matrices (i.e. retangular arrays of arrays) of these types. Using the method getXY (where X is I, D, B, or S and Y is 0, 1, or 2) may be more convenient (e.g. getD0).

  33. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  34. def getD0(identifier: String): Double

    Calls get(identifier,false) and converts the result to a Double.

    Calls get(identifier,false) and converts the result to a Double.

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  35. def getD1(identifier: String): Array[Double]

    Calls get(identifier,false) and converts the result to an Array[Double].

    Calls get(identifier,false) and converts the result to an Array[Double].

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  36. def getD2(identifier: String): Array[Array[Double]]

    Calls get(identifier,false) and converts the result to an Array[Array[Double]].

    Calls get(identifier,false) and converts the result to an Array[Array[Double]].

    Matrices (i.e. rectangular arrays of arrays) of integers, doubles, Booleans, and strings are supported. Integers, doubles, Booleans, and strings themselves are not supported. Vectors (i.e. arrays) of these types are also not supported.

  37. def getI0(identifier: String): Int

    Calls get(identifier,false) and converts the result to an Int.

    Calls get(identifier,false) and converts the result to an Int.

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  38. def getI1(identifier: String): Array[Int]

    Calls get(identifier,false) and converts the result to an Array[Int].

    Calls get(identifier,false) and converts the result to an Array[Int].

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  39. def getI2(identifier: String): Array[Array[Int]]

    Calls get(identifier,false) and converts the result to an Array[Array[Int]].

    Calls get(identifier,false) and converts the result to an Array[Array[Int]].

    Matrices (i.e. rectangular arrays of arrays) of integers, doubles, Booleans, and strings are supported. Integers, doubles, Booleans, and strings themselves are not supported. Vectors (i.e. arrays) of these types are also not supported.

  40. def getL0(identifier: String): Boolean

    Calls get(identifier,false) and converts the result to a Boolean.

    Calls get(identifier,false) and converts the result to a Boolean.

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  41. def getL1(identifier: String): Array[Boolean]

    Calls get(identifier,false) and converts the result to an Array[Boolean].

    Calls get(identifier,false) and converts the result to an Array[Boolean].

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  42. def getL2(identifier: String): Array[Array[Boolean]]

    Calls get(identifier,false) and converts the result to an Array[Array[Boolean]].

    Calls get(identifier,false) and converts the result to an Array[Array[Boolean]].

    Matrices (i.e. rectangular arrays of arrays) of integers, doubles, Booleans, and strings are supported. Integers, doubles, Booleans, and strings themselves are not supported. Vectors (i.e. arrays) of these types are also not supported.

  43. def getR0(identifier: String): Byte

    Calls get(identifier,false) and converts the result to a Byte.

    Calls get(identifier,false) and converts the result to a Byte.

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  44. def getR1(identifier: String): Array[Byte]

    Calls get(identifier,false) and converts the result to an Array[Byte].

    Calls get(identifier,false) and converts the result to an Array[Byte].

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  45. def getR2(identifier: String): Array[Array[Byte]]

    Calls get(identifier,false) and converts the result to an Array[Array[Byte]].

    Calls get(identifier,false) and converts the result to an Array[Array[Byte]].

    Matrices (i.e. rectangular arrays of arrays) of integers, doubles, Booleans, and strings are supported. Integers, doubles, Booleans, and strings themselves are not supported. Vectors (i.e. arrays) of these types are also not supported.

  46. def getReference(reference: EphemeralReference): PersistentReference

    Converts an ephemeral R reference to a persistent R reference so that it can be accessed outside of the current environment.

  47. def getReference(identifier: String): PersistentReference

    Obtains a persistent R reference to the named object so that it can be accessed outside of the current environment.

  48. def getS0(identifier: String): String

    Calls get(identifier,false) and converts the result to a string.

    Calls get(identifier,false) and converts the result to a string.

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  49. def getS1(identifier: String): Array[String]

    Calls get(identifier,false) and converts the result to an Array[string].

    Calls get(identifier,false) and converts the result to an Array[string].

    Integers, doubles, Booleans, and strings are supported. Vectors (i.e. arrays) of these types are also supported by converting the first element. Matrices (i.e. rectangular arrays of arrays) are not supported.

  50. def getS2(identifier: String): Array[Array[String]]

    Calls get(identifier,false) and converts the result to an Array[Array[string]].

    Calls get(identifier,false) and converts the result to an Array[Array[string]].

    Matrices (i.e. rectangular arrays of arrays) of integers, doubles, Booleans, and strings are supported. Integers, doubles, Booleans, and strings themselves are not supported. Vectors (i.e. arrays) of these types are also not supported.

  51. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  52. def invoke(functionName: String, args: Any*): Unit

    Invokes an R function with arguments.

  53. def invoke(function: Reference, args: Any*): Unit

    Invokes an R function with arguments.

  54. def invokeD0(functionName: String, args: Any*): Double

    Invokes an R function with arguments and returns the result using getD0.

  55. def invokeD0(function: Reference, args: Any*): Double

    Invokes an R function with arguments and returns the result using getD0.

  56. def invokeD1(functionName: String, args: Any*): Array[Double]

    Invokes an R function with arguments and returns the result using getD1.

  57. def invokeD1(function: Reference, args: Any*): Array[Double]

    Invokes an R function with arguments and returns the result using getD1.

  58. def invokeD2(functionName: String, args: Any*): Array[Array[Double]]

    Invokes an R function with arguments and returns the result using getD2.

  59. def invokeD2(function: Reference, args: Any*): Array[Array[Double]]

    Invokes an R function with arguments and returns the result using getD2.

  60. def invokeI0(functionName: String, args: Any*): Int

    Invokes an R function with arguments and returns the result using getI0.

  61. def invokeI0(function: Reference, args: Any*): Int

    Invokes an R function with arguments and returns the result using getI0.

  62. def invokeI1(functionName: String, args: Any*): Array[Int]

    Invokes an R function with arguments and returns the result using getI1.

  63. def invokeI1(function: Reference, args: Any*): Array[Int]

    Invokes an R function with arguments and returns the result using getI1.

  64. def invokeI2(functionName: String, args: Any*): Array[Array[Int]]

    Invokes an R function with arguments and returns the result using getI2.

  65. def invokeI2(function: Reference, args: Any*): Array[Array[Int]]

    Invokes an R function with arguments and returns the result using getI2.

  66. def invokeL0(functionName: String, args: Any*): Boolean

    Invokes an R function with arguments and returns the result using getL0.

  67. def invokeL0(function: Reference, args: Any*): Boolean

    Invokes an R function with arguments and returns the result using getL0.

  68. def invokeL1(functionName: String, args: Any*): Array[Boolean]

    Invokes an R function with arguments and returns the result using getL1.

  69. def invokeL1(function: Reference, args: Any*): Array[Boolean]

    Invokes an R function with arguments and returns the result using getL1.

  70. def invokeL2(functionName: String, args: Any*): Array[Array[Boolean]]

    Invokes an R function with arguments and returns the result using getL2.

  71. def invokeL2(function: Reference, args: Any*): Array[Array[Boolean]]

    Invokes an R function with arguments and returns the result using getL2.

  72. def invokeR0(functionName: String, args: Any*): Byte

    Invokes an R function with arguments and returns the result using getR0.

  73. def invokeR0(function: Reference, args: Any*): Byte

    Invokes an R function with arguments and returns the result using getR0.

  74. def invokeR1(functionName: String, args: Any*): Array[Byte]

    Invokes an R function with arguments and returns the result using getR1.

  75. def invokeR1(function: Reference, args: Any*): Array[Byte]

    Invokes an R function with arguments and returns the result using getR1.

  76. def invokeR2(functionName: String, args: Any*): Array[Array[Byte]]

    Invokes an R function with arguments and returns the result using getR2.

  77. def invokeR2(function: Reference, args: Any*): Array[Array[Byte]]

    Invokes an R function with arguments and returns the result using getR2.

  78. def invokeReference(functionName: String, args: Any*): PersistentReference

    Invokes an R function with arguments and returns the result using getReference.

  79. def invokeReference(function: Reference, args: Any*): PersistentReference

    Invokes an R function with arguments and returns the result using getReference.

  80. def invokeS0(functionName: String, args: Any*): String

    Invokes an R function with arguments and returns the result using getS0.

  81. def invokeS0(function: Reference, args: Any*): String

    Invokes an R function with arguments and returns the result using getS0.

  82. def invokeS1(functionName: String, args: Any*): Array[String]

    Invokes an R function with arguments and returns the result using getS1.

  83. def invokeS1(function: Reference, args: Any*): Array[String]

    Invokes an R function with arguments and returns the result using getS1.

  84. def invokeS2(functionName: String, args: Any*): Array[Array[String]]

    Invokes an R function with arguments and returns the result using getS2.

  85. def invokeS2(function: Reference, args: Any*): Array[Array[String]]

    Invokes an R function with arguments and returns the result using getS2.

  86. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  87. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  88. final def notify(): Unit

    Definition Classes
    AnyRef
  89. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  90. def ping(): Boolean

    Pings the R interpreter.

    Pings the R interpreter.

    Calling this method periodically on an otherwise-idle client may prevent the operating system from closing the socket. Returns true if the ping is successful and false otherwise.

  91. val rowMajor: Boolean

  92. def selectDynamic(identifier: String): (Any, String)

    A short-hand way to call get.

    A short-hand way to call get.

    R eval """
      a <- numeric(10)
      for ( i in 2:length(a) ) {
        a[i] <- 0.5*a[i-1] + rnorm(1)
      }
    """
    R.a
  93. val serializeOutput: Boolean

  94. def set(identifier: String, value: Any, index: String = "", singleBrackets: Boolean = true): Unit

    Assigns value to a variable identifier in the R interpreter.

    Assigns value to a variable identifier in the R interpreter.

    Integers, doubles, Booleans, and strings are supported, as are vectors (i.e. arrays) and matrices (i.e. retangular arrays of arrays) of these types.

    If index != "", assigned into elements of identifier are performed by using either single brackets (singleBrackets=true) or double brackets (singleBrackets=false).

    R.a = Array(5,6,4)
    
    R.eval("b <- matrix(NA,nrow=3,ncol=2)")
    for ( i <- 0 until 3 ) {
      R.set("b",Array(2*i,2*i+1),s"${i+1},")
    }
    R.b
    
    R.eval("myList <- list()")
    R.set("myList",Array("David","Grace","Susan"),"'names'",false)
    R.set("myList",Array(5,4,5),"'counts'",false)
    R.eval("print(myList)")
  95. def set(identifier: String, value: Any): Unit

    Equivalent to calling set(identifier, value, "", true).

  96. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  97. def toString(): String

    Definition Classes
    AnyRef → Any
  98. def updateDynamic(identifier: String)(value: Any): Unit

    A short-hand way to call set(identifier,value)

    A short-hand way to call set(identifier,value)

    R.b = Array.fill(10) { scala.math.random }
  99. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  100. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  101. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Dynamic

Inherited from AnyRef

Inherited from Any

Ungrouped