R как калькулятор

# посчитать разность 21 и 10:
21-10
## [1] 11
# присвоить значение переменной result1:
result1 <- 21-10
# вывести значение переменной:
result1
## [1] 11
# узнать тип переменной:
class(result1)
## [1] "numeric"
sqrt(2)^2 == 2
## [1] FALSE

Работа с номинальными (категориальными) переменными

result2 <- "Hello"
class(result2)
## [1] "character"
result3 <- "world"
result4 <- paste(result2, result3, sep = ", ")
result4
## [1] "Hello, world"
?paste
paste0(result2, result3)
## [1] "Helloworld"

Векторы

# присвоить значение вектора чисел от 1 до 10:
result5 <- c(1:10)
result5
##  [1]  1  2  3  4  5  6  7  8  9 10
class(result5)
## [1] "integer"

Операции с векторами:

# извлечь элементы с 4-го по 7-ой (получим тоже вектор)
result5[4:7]
## [1] 4 5 6 7
mean(result5) - mean(result5[1:3])
## [1] 3.5
rm(result5)
#result5
# извлечь элементы вектора по условию: 
newvector <- c(3, 55, 24, 1, 56, 2, 45)
newvector[newvector > 5 & newvector < 50]
## [1] 24 45

Булевы векторы:

newvector2 <- c(1:14)
newvector == newvector2
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE

Обратите внимание на длину итогового вектора:

length(newvector)
## [1] 7
length(newvector2)
## [1] 14

Упражнение

Создайте вектор n_countries, состоящий из следующих значений: 58, 27, 23, 20, 9, 6, 5, 5, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2

# YOUR CODE HERE

Используйте функцию barplot, чтобы изобразить столбиковую диаграмму со значениями данного вектора.

#barplot(...)

Что изображает наша диаграмма?

Давайте добавим в нее в качестве подписей вектор languagelist со следующими номинальными значениями: “English”, “French”, “Arabic”, “Spanish”, “Portuguese”, “German”, “Russian”, “Swahili”, “Italian”, “Malay”, “Dutch”, “Persian”, “Sotho”, “Tswana”, “Tamil”, “Albanian”, “Chinese”, “Romanian”, “Somali”, “Turkish”, “Aymara”, “Berber”, “Chichewa”, “Greek”, “Guarani”, “Hindustani”, “Quechua”, “Korean”, “Kurdish”, “Rwanda-Rundi”, “Swati”, “Swedish”, “Tigrinya”, “Venda”, “Bengali”

# YOUR CODE HERE

Подписи к столбцам добавляет аргумент names.arg=.
Поменяйте цвет столбиков с помощью аргумента col=....

# YOUR CODE HERE

Ну а теперь добавим аргументы: * horiz=TRUE – для поворота диаграммы на 90%
* las=1 – для поворота названий языков * xlab="..." – для подписи оси X
* main="..." – для названия всего графика

# YOUR CODE HERE

И еще немного красоты. Укажем масштаб подписей:

barplot(rev(n_countries), 
        col="steelblue", 
        names.arg=rev(languagelist),
        horiz=T, las=1,
        cex.main = 0.55, cex.sub = 0.45, cex.lab = 0.75, cex.names = 0.4,
        xlab="Number of countries",
        main="How many countries share a language?",
        sub = "Source: Wikipedia, 2025")

Догадайтесь, что делает функция rev()?

С помощью функции hist() постройте гистограмму:

# YOUR CODE HERE

Добавьте к построенной гистограмме цвет столбиков и подписи.

hist(n_countries,
     breaks = 27)

Датафреймы

head(cars)
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
## 4     7   22
## 5     8   16
## 6     9   10
str(cars)
## 'data.frame':    50 obs. of  2 variables:
##  $ speed: num  4 4 7 7 8 9 10 10 10 11 ...
##  $ dist : num  2 10 4 22 16 10 18 26 34 17 ...
dim(cars)
## [1] 50  2
cars[1:3,]
##   speed dist
## 1     4    2
## 2     4   10
## 3     7    4
cars$speed[5:46]
##  [1]  8  9 10 10 10 11 11 12 12 12 12 13 13 13 13 14 14 14 14 15 15 15 16 16 17
## [26] 17 17 18 18 18 18 19 19 19 20 20 20 20 20 22 23 24
cars[cars$speed >= 4,][cars$dist <= 20,]
##    speed dist
## 1      4    2
## 2      4   10
## 3      7    4
## 5      8   16
## 6      9   10
## 7     10   18
## 10    11   17
## 12    12   14
## 13    12   20
## 24    15   20
#install.packages("datasets")
#library(datasets)

Примечание

Этот документ написан в стиле R Markdown. Обратите внимание, как оформлен текст и как в него включены блоки кода на языке R.