R is an integrated suite of software facilities for data manipulation, calculation and graphical display.

# Using R

In our environment you have the possibility to either directly start R from the command line or by using rstudio

## By Command Line

• Open a Terminal
• type R to start R

```R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> ```
• You can now use any command you like. To exit R just type q()

## with RStudio

RStudio is an integrated development environment (IDE) for R.

• Start RStudio by typing rstudio in a shell # Packages

R can be extended by more than 11'000 Packages. The standard (or base) packages are considered part of the R source code. They contain the basic functions that allow R to work, and the datasets and standard statistical and graphical functions that are described in the R manual.

# Using a Base Packages

Let us assume you want to do some simple statistics about the height and weight of a family of four. The familly consists of the parents Jane and Joe and their kids Jim and June.

 Member Height Weight Jane 164 69 Joe 188 102 Jim 132 38 June 154 52

Now let us see what R can do with that values.

• Start R (either by command line or by using RStudio)

• Now define the height and weight of Jane, Joe, Jim and June.
```height = c(164, 188, 132, 154)
weight = c(69, 102, 38, 52)```
• Interested in some statistics, e.g. who is the tallest?
```summary(height)

Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
132.0   148.5   159.0   159.5   170.0   188.0 ```
• How about a simple plot of height and weight?

`plot(weight, height)` • Now extend the prevoius plot with some colors and some description.
`plot(weight, height, pch = 16, cex = 1.3, col = "blue", main = "A simple PLOT created with R", xlab = "WEIGHT (kg)", ylab = "HEIGHT (cm)")` Since we provide only the basic R package, sooner or later you want to extend it with additional packages. This can be done by creating a local package library and install the additional packages there.

## Configure R to use your local package library

Let us assume that you would like to create a local package library in ~/R/libraries. The following commands create that library and configure R to always use it as a resource.

• Open a Terminal
• Create the directory
`mkdir -p ~/R/libraries`
• Create a configuration File for R which is loaded every time R starts.
`echo "R_LIBS_USER=\"~/R/libraries\"" > .Renviron`
• Start R and check if the path is defined.
```.libPaths()

 "/usr/pack/r-3.4.2-me/amd64-debian-linux8/lib/R/library"```

## Installing the rJava package

• Start R
• Install the rJava package from the ETH mirror into our local library.

```install.packages("rJava", repos="http://stat.ethz.ch/CRAN", lib="~/R/libraries", dependencies=TRUE)

trying URL 'http://stat.ethz.ch/CRAN/src/contrib/rJava_0.9-9.tar.gz'
Content type 'application/x-gzip' length 660454 bytes (644 KB)
==================================================

* installing *source* package ‘rJava’ ...
** package ‘rJava’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
[...]```
• Check if the package has been installed in your library
```library()

rJava                   Low-Level R to Java Interface
[...]```

## An Example Usage with rJava

Let us assume you have created a simple Java Class which creates a number of variables to be used and manipulated by R. Below you find the steps to use that class from within R.

• Create the folder javatest in your homedirectory and create a simple java file.
```mkdir ~/javatest
cat<<EOF>~/javatest/myExchange.java
// This Java program creates a number of variables which will
// then be sent to R to be manipulated.

public class myExchange {

public String getString() {
return "Testing";
}

public String[] getStringArray() {
return new String[] {"This is just a test...", "string array."};
}
public double[] getdoubleArray() {
return new double[]{0.001, 20.238};
}

public double[][] getdoubleMatrix() {
double[][] doubleMatrix = new double[][]{{1.1,2.2,3.3},{4.4,5.5,6.6}};
return doubleMatrix;
}
}
EOF```
• Change into that directory and compile the java class.
```cd ~/javatest
javac myExchange.java```
```R

library(rJava)
.jinit()
• Check if R knows about the new Class Path
```.jclassPath()

• Now define variables in R and fill them with the values from your java class
```myExchange <- .jnew("myExchange")
stringTest <- .jcall(myExchange, "S", "getString")
stringArrayTest <- .jcall(myExchange, "[S", "getStringArray")
doubleArrayTest <- .jcall(myExchange, "[D", "getdoubleArray")
doubleMatrixTest <- .jcall(myExchange, "[[D", "getdoubleMatrix", simplify=T)```
• Test what you got
```stringTest
 "Testing"

stringArrayTest
 "This is just a test..." "string array."

doubleArrayTest
  0.001 20.238

doubleMatrixTest
[,1] [,2] [,3]
[1,]  1.1  2.2  3.3
[2,]  4.4  5.5  6.6```

Programming/R (last edited 2020-09-03 13:52:40 by davidsch)