В переменной belki сохранено число очков у команды «Белки», в переменной strelki сохранено число очков у команды «Стрелки» (создайте переменные и присвойте им значения по своему усмотрению). Напишите код, который сравнивает значения переменных и:
• если число очков у первой команды больше, чем у второй, выводит на экран сообщение “Победила команда БЕЛКИ!”
• если число очков у второй команды больше, чем у первой, выводит на экран сообщение “Победила команда СТРЕЛКИ!”
• если обе команды набрали одинаковое число очков, выводится сообщение “Победила дружба!”.
belki <- 16
strelki <- 16
if (belki > strelki){
print("Победила команда БЕЛКИ!")
} else if (strelki > belki){
print("Победила команда СТРЕЛКИ!")
} else {
print("Победила дружба!")
}
## [1] "Победила дружба!"
Дан вектор со значениями температуры воздуха 10 дней февраля: temp <- c(-8, -5, 0, 2, -6, -9, -8, -12, -11, -7) Нормальная температура в феврале лежит в пределах от -9.8 до -3.7. Напишите код, который выводит на экран температуру воздуха (каждый элемент вектора temp) и комментарий к нему: • если температура выше нормы, то “Температура выше нормы”; • если температура ниже нормы, то “Температура ниже нормы”; • если температура в норме, то “Температура в норме”.
Пример вывода на экран: 2 Температура выше нормы
temp <- c(-8, -5, 0, 2, -6, -9, -8, -12, -11, -7)
tmin <- -9.8
tmax <- -3.7
for (i in temp){
if (i < tmin){
cat(i, "Температура ниже нормы\n")
} else if (i > tmax){
cat(i, "Температура выше нормы\n")
} else {
cat(i, "Температура в норме\n")
}
}
## -8 Температура в норме
## -5 Температура в норме
## 0 Температура выше нормы
## 2 Температура выше нормы
## -6 Температура в норме
## -9 Температура в норме
## -8 Температура в норме
## -12 Температура ниже нормы
## -11 Температура ниже нормы
## -7 Температура в норме
Напишите функцию progress(), которая • принимает на вход два числа: число сданных домашних заданий и общее число домашних заданий; •возвращает процент выполненных домашних заданий, округленный до второго знака после запятой.
progress <- function(a, b){
n <- round((a/b)*100,2)
cat("Процент выполненных домашних заданий -", n,"%\n")
n
}
t <- progress(3,11)
## Процент выполненных домашних заданий - 27.27 %
Напишите функцию assessment(), которая • принимает на вход вектор прибыли (может содержать как положительные, так и отрицательные значения); • возвращает вектор такой же длины, что и вектор на входе, из 0 и 1, где 0 соответствует отрицательным и нулевым значениям прибыли, а 1 – положительным значениям прибыли.
В этой задаче необходимо использовать цикл for. Пример: На входе: с(-100, 150, 3500, 720, 0, -350). На выходе: c(0, 1, 1, 1, 1, 0, 0).
assesment <- function(a){
res <- c()
for (i in a){
if (i > 0){
res<-c(res,1)}
else{res<-c(res,0)}
}
res
}
test <- c(-100, 150, 3500, 720, 0, -350)
print(assesment(test))
## [1] 0 1 1 1 0 0
Решите предыдущую задачу без использования цикла, но с использованием функции ifelse(). Подсказка: запросите help по этой функции и посмотрите, как она работает.
help(ifelse)
assesment2 <- function(a){
res <- ifelse(test>0,1,0)
res
}
print(assesment2(test))
## [1] 0 1 1 1 0 0