Class AbstractRClient

    • Field Detail

      • log

        protected static org.slf4j.Logger log
    • Constructor Detail

      • AbstractRClient

        public AbstractRClient()
    • Method Detail

      • variableIdentityNumber

        public static String variableIdentityNumber​(Object ob)
        Parameters:
        ob -
        Returns:
      • assignMatrix

        public String assignMatrix​(double[][] matrix)
        Description copied from interface: RClient
        Assign a 2-d matrix.
        Specified by:
        assignMatrix in interface RClient
        Returns:
        the name of the variable by which the R matrix can be referred.
      • assignMatrix

        public String assignMatrix​(DoubleMatrix<?,​?> matrix)
        Description copied from interface: RClient
        Assign a 2-d matrix.
        Specified by:
        assignMatrix in interface RClient
        Returns:
        the name of the variable by which the R matrix can be referred.
      • assignMatrix

        public String assignMatrix​(DoubleMatrix<?,​?> matrix,
                                   org.apache.commons.collections4.Transformer rowNameExtractor)
        Description copied from interface: RClient
        Assign a 2-d matrix.
        Specified by:
        assignMatrix in interface RClient
        Returns:
        the name of the variable by which the R matrix can be referred.
      • assignStringList

        public String assignStringList​(List<?> strings)
        Description copied from interface: RClient
        Define a variable corresponding to a character array in the R context, given a List of Strings.
        Specified by:
        assignStringList in interface RClient
        Parameters:
        strings - , which will be stringified if they are not strings.
        Returns:
        the name of the variable in the R context.
      • booleanDoubleArrayEval

        public boolean booleanDoubleArrayEval​(String command,
                                              String argName,
                                              double[] arg)
        Description copied from interface: RClient
        Run a command that takes a double array as an argument and returns a boolean.
        Specified by:
        booleanDoubleArrayEval in interface RClient
        Returns:
      • dataFrame

        public String dataFrame​(ObjectMatrix<String,​String,​Object> matrix)
        Description copied from interface: RClient
        Convert an object matrix into an R data frame. Columns that look numeric are treated as numbers. Booleans and Strings are treated as factors.
        Specified by:
        dataFrame in interface RClient
        Returns:
        variable name in R-land.
      • disconnect

        public abstract void disconnect()
      • doubleArrayDoubleArrayEval

        public double[] doubleArrayDoubleArrayEval​(String command,
                                                   String argName,
                                                   double[] arg)
        Description copied from interface: RClient
        Run a command that has a single double array parameter, and returns a double array.
        Specified by:
        doubleArrayDoubleArrayEval in interface RClient
        Returns:
      • doubleArrayEval

        public double[] doubleArrayEval​(String command)
        Description copied from interface: RClient
        Run a command that returns a double array with no arguments.
        Specified by:
        doubleArrayEval in interface RClient
        Returns:
      • doubleArrayTwoDoubleArrayEval

        public double[] doubleArrayTwoDoubleArrayEval​(String command,
                                                      String argName,
                                                      double[] arg,
                                                      String argName2,
                                                      double[] arg2)
        Description copied from interface: RClient
        Run a command that takes two double array arguments and returns a double array.
        Specified by:
        doubleArrayTwoDoubleArrayEval in interface RClient
        Returns:
      • doubleTwoDoubleArrayEval

        public double doubleTwoDoubleArrayEval​(String command,
                                               String argName,
                                               double[] arg,
                                               String argName2,
                                               double[] arg2)
        Description copied from interface: RClient
        Run a command that takes two double arrays as arguments and returns a double value.
        Specified by:
        doubleTwoDoubleArrayEval in interface RClient
        Returns:
      • linearModel

        public LinearModelSummary linearModel​(double[] data,
                                              Map<String,​List<?>> factors)
        Description copied from interface: RClient
        Lower level access to linear model. Fairly simple. Factors are assigned in turn.
        Specified by:
        linearModel in interface RClient
        factors - Map of factorNames to factors (which can be expressed as Strings or Doubles). If you care about the order the factors are introduced into the model, use a LinkedHashMap.
      • linearModel

        public LinearModelSummary linearModel​(double[] data,
                                              ObjectMatrix<String,​String,​Object> d)
        Specified by:
        linearModel in interface RClient
        d - which will be converted to factors or continuous covariates depending on whether the columns are booleans, strings or numerical. Names of factors are the column names of the design matrix, and the rows are assumed to be in the same order as the data.
        Returns:
      • listEval

        public List<?> listEval​(Class<?> listEntryType,
                                String command)
        FIXME only partly implemented, possibly not going to stay.
        Specified by:
        listEval in interface RClient
        Parameters:
        listEntryType - a hint about what type of object you want the list to contain. If you set this to be null, the method will try to guess, but caution is advised.
        command - R command
        Returns:
      • remove

        public void remove​(String variableName)
        Description copied from interface: RClient
        Remove a variable from the R namespace
        Specified by:
        remove in interface RClient
      • rowApplyLinearModel

        public Map<String,​LinearModelSummary> rowApplyLinearModel​(String dataMatrixVarName,
                                                                        String modelFormula,
                                                                        String[] factorNames)
        Description copied from interface: RClient
        Run lm with anova on all the rows of a matrix
        Specified by:
        rowApplyLinearModel in interface RClient
        Parameters:
        dataMatrixVarName - from an assignment of a matrix
        modelFormula - and other options that will be passed as the argument to 'lm(...)', that refers to factor variables that have already been assigned, using x as the outcome. Example might be x ~ f1 + f2.
        Returns:
        map of row identifiers to populated LinearModelSummaries.
      • stringEval

        public String stringEval​(String command)
        Description copied from interface: RClient
        Evaluate any command and return a string
        Specified by:
        stringEval in interface RClient
        Returns:
        string
      • twoWayAnova

        public TwoWayAnovaResult twoWayAnova​(double[] data,
                                             List<String> factor1,
                                             List<String> factor2,
                                             boolean includeInteraction)
        Description copied from interface: RClient
        Lower-level access to two-way ANOVA
        Specified by:
        twoWayAnova in interface RClient
        Returns:
        result with interaction term information null if includeInteraction = false
      • twoWayAnovaEval

        public Map<String,​TwoWayAnovaResult> twoWayAnovaEval​(String command,
                                                                   boolean withInteractions)
        Description copied from interface: RClient
        Evaluates two way anova commands of the form

        apply(matrix,1,function(x){anova(aov(x~farea+ftreat))}

        and

        apply(matrix,1,function(x){anova(aov(x~farea+ftreat+farea*ftreat))}

        where farea and ftreat have already been transposed and had factor called on them.
        Specified by:
        twoWayAnovaEval in interface RClient
        Returns:
      • loadScript

        protected void loadScript​(InputStream is)
        There is a pretty annoying limitation of this. The file must contain only one statement. You can get around this by using c(x<-1,x<-2). See testScript.R
        Parameters:
        is -