# 7 Useful functions

Here we will learn a few more useful functions in R that will useful to us further along.

## 7.1 Sequences


# seq() function generates a sequence of numbers.
seq(from=1, to=9)

# We can ommit the from and to
seq(1,9)

# We can define the step, increment of sequences(Default is 1)
seq(1,9, by=2)

# Steps can by any amount
seq(0,9, by=1.5)

# We can also use length parameter instead, which will equally split our sequence.
seq(from=1, to=10, length.out=19)

# We can achieve a simpler version of seq with the operator ':'
0:9

# seq() function generates a sequence of numbers.
seq(from=1, to=9)

# We can ommit the from and to
seq(1,9)

# We can define the step, increment of sequences(Default is 1)
seq(1,9, by=2)

# Steps can by any amount
seq(0,9, by=1.5)

# We can also use length parameter instead, which will equally split our sequence.
seq(from=1, to=10, length.out=19)

# We can achieve a simpler version of seq with the operator ':'
0:9

## 7.2 Repetitions

R also allows you to easily create vectors containing repetitions with the rep() function.


# rep() function replicates the values in x.
rep(c("Isn't it time for a break?"), times=2)

# We can use to create repetitions of numbers as well
rep(5, times=3)

# Or of sequences of numbers
rep(1:5, times=2)

# We can also use "each" to ask that each element is repeated "each" times.
rep(1:5, each=2)

#  What would this give?
rep(rep(4:-5, 5), 2)

# Or this? Try to press "Enter" after each parenthesis and comma so you can isolate each part of the code and better understand it
rep(rep(seq(1, 10, length.out=25), 2), 3)

# rep() function replicates the values in x.
rep(c("Isn't it time for a break?"), times=2)

# We can use to create repetitions of numbers as well
rep(5, times=3)

# Or of sequences of numbers
rep(1:5, times=2)

# We can also use "each" to ask that each element is repeated "each" times.
rep(1:5, each=2)

#  What would this give?
rep(rep(4:-5, 5), 2)

# Or this? Try to press "Enter" after each parenthesis and comma so you can isolate each part of the code and better understand it
rep(rep(seq(1, 10, length.out=25), 2), 3)

## 7.3 Factors

Factors are variables in R which take on a limited number of different values, such variables are often referred to as categorical variables. For example in cross-national research, “Gender” is usually a variable that can either take “Male” or “Female” values. In R terms, the factor would be called Gender, and it would have two levels, “Male” or “Female”.

Above we learned we can do this by rep(c("Male", "Female"), each=5). Now we must save into an above called Gender:

Gender <- factor(rep(c("Male", "Female"), each=5))
Gender
##  [1] Male   Male   Male   Male   Male   Female Female Female Female Female
## Levels: Female Male

Alternatively, we can use the gl() function, which generates factors by specifying the pattern of their levels. Where:

gl(n, k, length = n*k, labels = 1:n, ordered = FALSE)

• n: number of levels
• k: number of replications
• length: length of the result. By default: length = n*k
• labels: labels for the resulting factor levels
• ordered: whether the result should be ordered or not
Gender <- gl(2, 5, labels = c("Male", "Female"))
Gender
##  [1] Male   Male   Male   Male   Male   Female Female Female Female Female
## Levels: Male Female

Let’s try creating a factor of 3 colors


gl(n=3, k=1,            labels = c("Brown", "Red", "Green"))

# Now let's use the "k" argument within the gl function
# to specify the number of replications of each factor level
gl(n=3, k=2, length=9,  labels = c("Brown", "Red", "Green"))

# Here we see Recycling because we used the "length" argument
# which gives the length of the wanted result
gl(n=3, k=1, length=12, labels = c("Brown", "Red", "Green"))

# We can use rep() and gl() together to achieve a repetion
# of all factors levels at once, instead of repeating each level
rep(gl(n=4, k=1, labels = c("Brown", "Red", "Green", "Yellow")), 3)

gl(n=3, k=1,            labels = c("Brown", "Red", "Green"))

# Now let's use the "k" argument within the gl function
# to specify the number of replications of each factor level
gl(n=3, k=2, length=9,  labels = c("Brown", "Red", "Green"))

# Here we see Recycling because we used the "length" argument
# which gives the length of the wanted result
gl(n=3, k=1, length=12, labels = c("Brown", "Red", "Green"))

# We can use rep() and gl() together to achieve a repetion
# of all factors levels at once, instead of repeating each level
rep(gl(n=4, k=1, labels = c("Brown", "Red", "Green", "Yellow")), 3)