4. If and else
The simplest form of flow control is conditional execution using if.
if takes a logical value (more precisely, a logical vector of length one) and
executes the next statement only
if that value is TRUE:
if(TRUE) message("It was true!")
## It was true!
if(FALSE) message("It wasn't true!")
Missing values aren’t allowed to be passed to if; doing so throws an error: if(NA)
message("Who knows if it was true?")
## Error: missing value where TRUE/FALSE needed Where you may have a missing
value, you should test for it using is.na:
if(is.na(NA)) message("The value is missing!")
## The value is missing!
6. a <- 33
b <- 33
if (b > a) {
print("b is greater than a")
} else if (a == b) {
print ("a and b are equal")
}
a <- 200
b <- 33
if (b > a) {
print("b is greater than a")
} else if (a == b) {
print("a and b are equal")
} else {
print("a is greater than b")
}
7. x <- 41
if (x > 10) {
print("Above ten")
if (x > 20) {
print("and also above 20!")
} else {
print("but not above 20.")
}
} else {
print("below 10.")
}
[1] "Above ten"
[1] "and also above 20!"
9. Loop
There are three kinds of loops in R:
Repeat
While, and for
they can still come in handy for repeatedly executing code
Repeat:
i<-0
repeat
{
print(i)
i<-i+1
if(i>=3)
break
}
12. Functions
A function is a block of code which only runs when
it is called.
You can pass data, known as parameters, into a
function.
A function can return data as a result.
13. Creating and Calling Function in R
In order to understand functions better, let’s take a look
at what they consist of.
Typing the name of a function shows you the code that
runs when you call it.
The terms "parameter" and "argument" can be used for the
same thing: information that are passed into a function.
From a function's perspective:
A parameter is the variable listed inside the parentheses
in the function definition.
An argument is the value that is sent to the function when
it is called.
15. Passing Functions to and from Other
Functions
Functions can be used just like other variable
types, so we can pass them as arguments to other
functions, and return them from functions.
One common example of a function that takes
another function as an argument is do.call.
do.call(function(x, y) x + y, list(1:5, 5:1))
## [1] 6 6 6 6 6
16. do.call()
#create three data frames
df1 <- data.frame(team=c('A', 'B', 'C'), points=c(22, 27, 38))
df2 <- data.frame(team=c('D', 'E', 'F'), points=c(22, 14, 20))
df3 <- data.frame(team=c('G', 'H', 'I'), points=c(11, 15, 18))
#place three data frames into list
df_list <- list(df1, df2, df3)
#row bind together all three data frames
do.call(rbind, df_list)
17. Variable Scope
A variable’s scope is the set of places from which you can see the variable.
For example, when you define a variable inside a function, the rest of the
statements in that function will have access to that variable.
In R subfunctions will also have access to that variable.
In this next example, the function f takes a variable x and passes it to the
function g. f also defines a variable y, which is within the scope of g, since g
is a sub‐ function of f.
18. So, even though y isn’t defined inside g, the example works:
f <- function(x)
{
y <- 1
g <- function(x)
{
(x + y) / 2 #y is used, but is not a formal argument of g }
g(x)
}
f(sqrt(5)) #It works! y is magically found in the environment of f
## [1] 1.618
19. String Manipulation
String manipulation basically refers to the process of
handling and analyzing strings.
It involves various operations concerned with
modification and parsing of strings to use and change its
data.
Paste:
str <- paste(c(1:3), "4", sep = ":")
print (str)
## "1:4" "2:4" "3:4"
Concatenation:
# Concatenation using cat() function
str <- cat("learn", "code", "tech", sep = ":")
print (str)
## learn:code:tech
21. Loading and Packages
R is not limited to the code provided by the R Core Team.
It is very much a community effort, and
there are thousands of add-on packages available to
extend it.
The majority of R packages are currently installed in an
online repository called CRAN (the Comprehensive R
Archive Network1)
which is maintained by the R Core Team. Installing and
using these add-on packages is an important part of the R
experience
22. Loading Packages
To load a package that is already installed on your
machine, you call the library function
We can load it with the library function:
library(lattice)
the functions provided by lattice. For example,
displays a fancy dot plot of the famous Immer’s barley
dataset:
dotplot(
variety ~ yield | site,
data = barley,
groups = year
)
23. Scatter Plot
A "scatter plot" is a type of plot used to display the relationship between two
numerical variables, and plots one dot for each observation.
It needs two vectors of same length, one for the x-axis (horizontal) and one
for the y-axis (vertical):
Example
x <- c(5,7,8,7,2,2,9,4,11,12,9,6)
y <- c(99,86,87,88,111,103,87,94,78,77,85,86)
plot(x, y)