4.2 Some basics


Introduction on many basics are covered other places in the R-tutorial. I encourage you to look around there if you need help with basic operations.  Still, below I mention some basics that you will need.

Creating objects

R treats our data as objects. They can be single vectors, matrices, lists and data frames.

R stores nearly all data in vectors (the others object types consist of vectors). What’s contained in an vector is given within c(). An object containing a single element is a vector of length 1 (e.g. c(15)). Vector elements can be of different classes.

In the our course, we will use imported data, but it is still usefull to know how to create simple objects, which will be needed for some operations.

<- is the assignment operator. Assigns values on the right to objects on the left. In many cases it is similar to =, but using = instead of <- can lead to issues later on. Use = to specify the values of arguments in functions:

read.table(file="data/some_data.txt")

Objects containing a single element:

x <- 10 #assigning x the number 10;
X <- c(10) #does the same as above
x #Returns the value of x

We can overwrite the content we previously assigned to an object, e.g.

x <- 15 #we now assign 15 to x, the previous value is overwritten
x

To create a longer vector, which contain a series of elements we use:

y <- c(2,4,6) #the values for the vector are given in c(), separated by,
y
y <- c(x,5,x) #using previously assigned values for x to create the vector
y

Creating dataframes:

You can create dataframes directly in R, but for the course, we will import the dataframes we want to work with.

#creating example dataframe (df); 
ID <- 1:16 #creating vector with numbers from 1 to 16 => IDs for 16 observations
year <- c(rep("2015", 4), rep("2016", 4), rep("2017", 4), rep("2018", 4)) #creating a vector with 4 repetitions for each year
station<-rep(c("Isfj", "Kongsfj", "Hinlopen", "MIZ"),4) #creating vector with 4 repetitions of the vector given within
gear <- rep(c("Pelagic","Benthic"),8) 
values1 <- c(rnorm(8, mean=30, sd=5),rnorm(8,mean=40,sd=5)) #creating value vector from a normal distribution; e.g. abundances
values2<- c(rnorm(8,mean=55, sd=5),rnorm(8,mean=35,sd=5))
df <- data.frame(ID, year, station, gear, values1, values2) #combining the different vectors to a dataframe (all vectors need to have same length)

We can use the objects we created in functions later on, or create new objects from combinations of functions and objects:

y <- c(2,4,6)
mean(y)# calculate the mean of the elements in vector y
mean_y <- mean(y) #saving the calculated mean in a new object for later use

 

Subsetting vectors and dataframes

We can access single elements in a vector or dataframe using []. The [] specifies the indices of the vector/dataframe.

x <- c(2,4,6)
x[1] #returns the first element of vector x
x[3] #returns the 3rd element of vector x
#for dataframes
Data[1,2] #Returns the element in the first column and second row
Data[5,2] #Returns the element in the 5th column and 2nd row

If you want to access a series of elements you can use:

x <- c(2,4,6,8,10,12)
x[2:4] #returns all values from the 2nd to the 4th element
x[c(2,3,2)] #returns the values of the 2nd, 3rd and again 2nd element of the vector.

We can also access elements through specifying their name. This is particularly usefull in dataframes:

x[,"Var1"] #returns variable values as vector
x["Var1"] #returns variable values as list

You can find more about options on subsetting, including logical arguments here.

  Fant du det du lette etter? Did you find this helpful?
[Average: 0]