Basic Workflow
The R environment is broken up into two main windows, the console and the script. The console window is the place where R is waiting for you to tell it what to do, and where it will show the results of a command. >
mark that R is ready to take a command. +
means the command is not complete, like you are missing a )
or }
. You can type commands directly into the console, but they will be forgotten when you close the session.The script is a simple text (.R) file that stores your code. The point of a well constructed script is not just to “do stuff” but to do it in a way that maintains a complete record of your work so anyone can easily and exactly replicate your workflow and results.
Basic Operation
# this is a comment in R
- Use
x <- 3
to assign a value,3
, to a variable,x
=
can also be used, but should be avoided EXCEPT in functions
- R counts from 1, unlike many other programming languages (e.g., Python)
length(thing)
returns the number of elements contained in the variablething
.dim(thing)
returns length in multiple dimensions.c(value1, value2, value3)
creates a vectorcontainer[i]
selects the i’th element from the vectorcontainer
container[[i]]
selects the i’th object from the objectcontainer
- You’ll have to get familiar with the different
class()
of objects:character
is textnumeric
is numbersfactor
is categorieslogical
is TRUE / FALSE
- Objects can be grouped in many ways:
list()
vector()
orc()
matrix()
data.frame()
Control Flow
-
Create a conditional using
if
,else if
, andelse
if(x > 0){ print("value is positive") } else if (x < 0){ print("value is negative") } else{ print("value is neither positive nor negative") }
-
Create a
for
loop to process elements in a collection one at a timefor (i in 1:5) { print(i) }
This will print:
1
2
3
4
5
- Use
==
to test for equality3 == 3
, will returnTRUE
,'apple' == 'orange'
will returnFALSE
X & Y
isTRUE
is both X and Y are trueX | Y
isTRUE
if either X or Y, or both are true
Functions
-
Defining a function:
is_positive <- function(integer_value){ if(integer_value > 0){ TRUE else{ FALSE { }
In R, the last executed line of a function is automatically returned, otherwise use return()
to be sure you know what the function is giving back to you.
-
Specifying a default value for a function argument
increment_me <- function(value_to_increment, value_to_increment_by = 1){ value_to_increment + value_to_increment_by }
increment_me(4)
, will return 5
increment_me(4, 6)
, will return 10
-
Call a function by using
function_name(function_arguments)
-
apply family of functions:
apply()
,sapply()
,lapply()
,mapply()
apply(dat, MARGIN = 2, mean)
will return the average (mean
) of each column indat
Packages
- Install package by using
install.packages("package-name")
- Update packages by using
update.packages("package-name")
- Load packages by using
library("package-name")
Math
Do math by simply typing or pasting in the console.
x+y
x*y
x**y
sum(vector)
mean(vector)
round(vector, decimal_places)
Scientific Commands
- Import data using
read.csv(file, header = TRUE, sep = ",", …)
- Check out what you imported with
names()
,head()
, andstr()
- Export results using
write.csv(x, file, …)
- Many statistical functions are available (
t.test()
,lm(y~x)
)
Finding Help
Don’t be defeated by a coding problem, semantics confusion, or error messages. Find help:
help(function)
or ?function
- Input any function into the parentheses for useful syntax and function information. args()
gives you the arguments of a function.
You can also check out the resources below or run a general engine search (i.e., r split character string). The hardest part here is finding the right keywords to use.
General Resources
Manual Directories
R Community Forums
How to ask for help
###Style Guides