- R Machine Learning By Example
- Raghav Bali Dipanjan Sarkar
- 516字
- 2021-07-09 19:34:21
Controlling code flow
This section covers areas related to controlling the execution of your code. Using specific constructs such as if-else
and switch
, you can execute code conditionally. Constructs like for
, while
, and repeat
, and help
in executing the same code multiple times which is also known as looping. We will be exploring all these constructs in the following section.
Working with if, if-else, and ifelse
There are several constructs which help us in executing code conditionally. This is especially useful when we don't want to execute a bunch of statements one after the other sequentially but execute the code only when it meets or does not meet specific conditions. The following examples illustrate the same:
> num = 5 > if (num == 5){ + cat('The number was 5') + } The number was 5 > > num = 7 > > if (num == 5){ + cat('The number was 5') + } else{ + cat('The number was not 5') + } The number was not 5 > > if (num == 5){ + cat('The number was 5') + } else if (num == 7){ + cat('The number was 7') + } else{ + cat('No match found') + } The number was 7 > ifelse(num == 5, "Number was 5", "Number was not 5") [1] "Number was not 5"
Working with switch
The switch
function is especially useful when you have to match an expression or argument to several conditions and execute only if there is a specific match. This becomes extremely messy when implemented with the if-else
constructs but is much more elegant with the switch
function, as we will see next:
> switch( + "first", + first = "1st", + second = "2nd", + third = "3rd", + "No position" + ) [1] "1st" > > switch( + "third", + first = "1st", + second = "2nd", + third = "3rd", + "No position" + ) [1] "3rd" > # when no match, default statement executes > switch( + "fifth", + first = "1st", + second = "2nd", + third = "3rd", + "No position" + ) [1] "No position"
Loops
Loops are an excellent way to execute code segments repeatedly when needed. Vectorization constructs are, however, more optimized than loops for working on larger data sets, but we will see that later in this chapter. For now, you should remember that there are three types of loops in R, namely, for
, while
, and repeat
. We will look at all of them in the following examples:
> # for loop > for (i in 1:10){ + cat(paste(i," ")) + } 1 2 3 4 5 6 7 8 9 10 > > sum = 0 > for (i in 1:10){ + sum <- sum + i + } > sum [1] 55 > > # while loop > count <- 1 > while (count <= 10){ + cat(paste(count, " ")) + count <- count + 1 + } 1 2 3 4 5 6 7 8 9 10 > > # repeat infinite loop > count = 1 > repeat{ + cat(paste(count, " ")) + if (count >= 10){ + break # break off from the infinite loop + } + count <- count + 1 + } 1 2 3 4 5 6 7 8 9 10
- 大數(shù)據(jù)項目管理:從規(guī)劃到實現(xiàn)
- 網(wǎng)上沖浪
- 傳感器技術(shù)實驗教程
- Hadoop 2.x Administration Cookbook
- Getting Started with MariaDB
- 西門子S7-200 SMART PLC從入門到精通
- 影視后期制作(Avid Media Composer 5.0)
- 四向穿梭式自動化密集倉儲系統(tǒng)的設(shè)計與控制
- 系統(tǒng)安裝與重裝
- 貫通Java Web開發(fā)三劍客
- INSTANT Puppet 3 Starter
- 人工智能:智能人機交互
- 手把手教你學(xué)Photoshop CS3
- 電機與電力拖動
- 7天精通Photoshop CS5平面視覺設(shè)計