# Holcombe:ProgrammingInR

### Members

Alex Holcombe
Sarah McIntyre
Fahed Jbarah
• Shih-Yu Lo
• Patrick Goodbourn
Lizzy Nguyen
Alumni

### Other

R is an interactive programming language for statistics. The syntax is very idiosyncratic, and not really in a good way. Try R for programmers for a description. However it may have menu-driven versions maybe available R commander we haven't tried that and another one is pmg GTK maybe here

In the lab we have the book Using R for Introductory Statistics. R_Statistics introduces you to R

Dani has posted some example code and graphs on his personal website.

R reference cheatsheet, also a file here Media:Matlab-python-xref.pdf‎ that gives equivalent code for doing array operations in MATLAB, Python, and R plot parameters

There is a wiki with some good tips here. Also Data frame tips, list of R websites

Functions in R can only return one parameter. Calling typeof() on a dataframe returns "list"! Delete nearly everything in memory: rm(list = ls())

Examining your data matrix or object, let's say it's called datos

```head(datos)
str(datos)
```

Don't use the function attach. It seems to leave lots of data in the 'environment' that can cause problems later. Also it makes the code harder to understand.

## Creating Graphs (usu. ggplot2)

In the lab we usually use the package, ggplot2, for graphs. Ask Sarah about the ggplot2 book.

For custom colour schemes, the Chart of R Colors is a helpful resource. The table with named colours is most useful.

ggplot2 tips: last_plot()

summary(g) gives info about the ggplot struct, if you've created one called g

order used for scale mapping (color, etc.) is perhaps the order of the levels property of the vector. This gives bizarre results because R's sort(unique(x)) default does not alphabetize strings.

## Debugging in R

How to examine and try things with a questionable variable within a function?

``` ee <<- resultsMeans #make global, violating all principles of good coding #DEBUG
STOP
```

## fitting psychometric functions

Malte Kuss hosts the R library PsychoFun on his personal webpage rather than c-ran server. So you must download is package, unzip it, and install it by inside R going to Packages&Data->Package Installer->Local Package Directory->Install, go inside the PsychoFun directory you've unzipped, and click Open.

I needed to constrain width of psychometric function to be quite narrow. Prior I was using followed lognormal distribution. Then if want mode to be say .1, have to feed it a mean parameter of -2.3 because ln(.1) = -2. Unfortunately the PsychoFun code doesn't allow using a negative parameter for that prior, so I had to change the code. To do so, you go into the downloaded version of PsychoFun folder before you install it, where you can find PsychoFun.R in the R subdirectory. I commented out line 56. Then have to reinstall with Package Installer inside R, "Local Package Directory" option, after in my case first deleting original PsychoFun installation in /Library/Frameworks/R.framework/Versions/2.10/Resources/library/

Technical Report explains many more terms than JoV article: Acceptance rate:Next sample in chain only accepted if quantity on p.481 of JoV paper is good Kinetic, Potential energy from Hamiltonian algorithm

## doing ANOVAs etc

I think I had too many error terms reducing error terms

## Dealing with circular data

von Mises vs. wrapped Gaussian,

see Swindale, N. V. (1998). Orientation tuning curves: empirical description and estimation of parameters. Biol Cybern, 78(1), 45-56.

## Setting up a proxy in R on a Mac

The easiest way to set up a proxy is simply to create a file called ".Rprofile" in your user directory (~ or Users/username/) with the line: ``` ```

``` Sys.setenv(http_proxy=”http://username:password@tcdproxy.tcd.ie:8080″) ```

Then restart R. This information (and more) can be found on Ken Benoit's webpage

For Sydney Uni, use: ``` ```

``` Sys.setenv(http_proxy=”http://www-cache.usyd.edu.au:8080″) ```