English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Требования к структуре запроса требуют от программиста указать один или несколько условий для оценки или тестирования, а также инструкции, которые необходимо выполнить при истинности условия (обязательные) и инструкции, которые можно выполнить при ложности условия (необязательные).
Ниже приведена общая форма структуры условия, типичная для большинства языков программирования:
Язык программирования R предоставляет следующие типы условия:
if-выражение
if...else-выражение
Команда switch
Если expression является булевым выражением, за ним может следовать один или несколько предложений.
Грамматический формат:
if(boolean_expression) { // если булевое выражение истино, выполняется следующая команда }
Если булевое выражение boolean_expression истино, выполняется код в этой части, если ложно - не выполняется.
x <- 50L if(is.integer(x)) { print("X является целым числом") }
switch(you.like, google="www.google.com", w3codebox = "ru.oldtoolbag.com", taobao = "www.taobao.com")
[1] "X является целым числом"
заif-выражением может следовать необязательное else-выражение, которое выполняется, если булевое выражение ложно.
Грамматический формат:
if(boolean_expression) { // если булевое выражение истино, выполняется следующая команда } // если булевое выражение ложно, выполняется следующая команда }
Если булевое выражение boolean_expression истино, выполняется код в блоке if. Если булевое выражение ложно, выполняется код в блоке else.
x <- c("google", "w3codebox", "taobao") if("w3codebox" in x) { print("содержит w3codebox") } print("не содержит w3codebox") }
switch(you.like, google="www.google.com", w3codebox = "ru.oldtoolbag.com", taobao = "www.taobao.com")
[1] "содержит w3codebox"
Если есть несколько условий, можно использовать if...else if...else:
if(boolean_expression 1) { // если булевое выражение boolean_expression 1 истино, выполняется следующая команда } else if (boolean_expression 2) { // если булевое выражение boolean_expression 2 истино, выполняется следующая команда } else if (boolean_expression 3) { // если булевое выражение boolean_expression 3 истино, выполняется следующая команда } // все булевы выражения выше равны false, выполняется }
x <- c("google", "w3codebox", "taobao") if("weibo" in x) { print("первый if содержит weibo") } else if ("w3codebox" in x) { print("второй if содержит w3codebox") } print("Не найдено") }
switch(you.like, google="www.google.com", w3codebox = "ru.oldtoolbag.com", taobao = "www.taobao.com")
[1] "Вторая if включает w3codebox"
Одна команда switch позволяет тестировать, когда переменная равна нескольким значениям. Каждое значение называется case.
Грамматический формат:
switch(expression, case1, case2, case3....)
Указанное в выражении Указанное в выражении
Указанное в выражении switch Если соответствует нескольким значениям, то возвращается первое. Указанное в выражении
Это константное выражение, может быть целым числом или строкой, если это целое число, то возвращается значение position case, если целое число не находится в диапазоне position, то возвращается NULL.
Если соответствует нескольким значениям, то возвращается первое.expression
Если это строка, то соответствующее ей является значением переменной case, если нет соответствия, то не возвращается значение.
switch не имеет параметра по умолчанию.
Следующий пример возвращает третий элемент: x <- switch( 3,, "google", "w3codebox", "taobao", "weibo" )
switch(you.like, google="www.google.com", w3codebox = "ru.oldtoolbag.com", taobao = "www.taobao.com")
print(x)
[1] "taobao"
Если это строка, то возвращается значение переменной строки, соответствующей значению case, если нет соответствия, то не возвращается значение. you.like<-"w3codebox"
switch(you.like, google="www.google.com", w3codebox = "ru.oldtoolbag.com", taobao = "www.taobao.com")
Выполните вышеуказанный код, результат вывода будет:
[1] "ru.oldtoolbag.com"
Пример > x <- switch(4,"google","w3codebox","taobao") > x Пример > x <- switch(4,"google","w3codebox","taobao") > x