English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Онлайн-инструменты
Присваивание = Символ присваивания в других языках обычно:
a <- 123 b <- 456 print(a + b)
Результат выполнения кода выше:
[1] 579
Этот символ присваивания является формальным преимуществом и недостатком операционного языка R: формально он更适合 математикам, так как не все математики привыкли использовать = Как символ присваивания.
С точки зрения использования, символы < и - не очень хорошо вводятся, что может не подходить многим программистам. Поэтому, в более новых версиях языка R поддерживается символ = в качестве знака присваивания:
a = 123 b = 456 print(a + b)
Это также является законным R-программой.
Внимание:Трудно определить, с какой версии R поддержка началась = Ассигнование, но в данном руководстве используется версия R 4.0.0.
В таблице ниже перечислены основные математические операторы и их порядок выполнения:
Приоритет | Знаки | Значение |
---|---|---|
1 | () | Скобки |
2 | ^ | Операция возведения в степень |
3 | %% | Целочисленное деление с остатком |
%/% | Целочисленное деление | |
4 | * | Умножение |
/ | Деление | |
5 | + | Сложение |
- | Вычитание |
Ниже приведены примеры простых математических операций:
> 1 + 2 * 3 [1] 7 > (1 + 2) * 3 [1] 9 > 3 / 4 [1] 0.75 > 3.4 - 1.2 [1] 2.2 > 1 - 4 * 0.5^3 > pnorm(0) > 8 / 3 %% 2 [1] 8 > 8 / 4 %% 2 [1] Inf > 3 %% 2^2 [1] 3 > 10 / 3 %% 2 [1] 10
В таблице ниже перечислены операторы отношений, поддерживаемые языком R. Операторы отношений сравнивают два вектора, сравнивают каждый элемент первого вектора с соответствующим элементом второго вектора, и результатом является булево значение.
Оператор | Описание |
---|---|
> | Проверка каждого элемента первого вектора на то, является ли он больше соответствующего элементу второго вектора. |
< | Проверка каждого элемента первого вектора на то, является ли он меньше соответствующего элементу второго вектора. |
== | Проверка каждого элемента первого вектора на то, является ли он равен соответствующему элементу второго вектора. |
!= | Проверка каждого элемента первого вектора на то, является ли он не равен соответствующему элементу второго вектора. |
>= | Проверка каждого элемента первого вектора на то, является ли он больше или равен соответствующему элементу второго вектора. |
<= | Проверка каждого элемента первого вектора на то, является ли он меньше или равен соответствующему элементу второго вектора. |
v <- c(2,4,6,9) t <- c(1,4,7,9) print(v>t) print(v<t) print(v==t) print(v!=t) print(v>=t) print(v<=t)
Результат выполнения кода приведен ниже:
[1] TRUE ЛОЖЬ ЛОЖЬ ЛОЖЬ [1] ЛОЖЬ ЛОЖЬ TRUE ЛОЖЬ [1] ЛОЖЬ TRUE ЛОЖЬ TRUE [1] TRUE ЛОЖЬ TRUE ЛОЖЬ [1] TRUE TRUE FALSE TRUE [1] ЛОЖЬ TRUE TRUE TRUE
В таблице перечислены логические операторы, поддерживаемые языком R, которые могут использоваться для числовых, логических и комплексных типов векторов.
Все числа больше 1 TRUE.
Логические операторы сравнивают два вектора, сравнивают каждый элемент первого вектора с соответствующим элементом второго вектора, результат возвращает булево значение.
Оператор | Описание |
---|---|
& | Элемент логический и оператор комбинирует каждый элемент первого вектора с соответствующим элементом второго вектора, если оба TRUE, то результат TRUE,否则 FALSE. |
| | Элемент логический или оператор комбинирует каждый элемент первого вектора с соответствующим элементом второго вектора, если один из элементов TRUE, то результат TRUE, если оба FALSE, то FALSE. |
! | Логический не оператор, возвращает логическое значение каждого элемента вектора, если элемент TRUE, то FALSE, если FALSE, то TRUE. |
&& | Логический и оператор, сравнивает только первый элемент двух векторов, если оба TRUE, то результат TRUE,否则 FALSE. |
|| | Логический или оператор, сравнивает только первый элемент двух векторов, если один из элементов TRUE, то результат TRUE, если оба FALSE, то FALSE. |
v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t) print(v|t) print(!v) # &&, || сравнивают только первый элемент v <- c(3,0,TRUE,2+2i) t <- c(1,3,TRUE,2+3i) print(v&&t) v <- c(0,0,TRUE,2+2i) t <- c(0,3,TRUE,2+3i) print(v||t)
Результат выполнения кода приведен ниже:
[1] TRUE TRUE FALSE TRUE [1] TRUE TRUE TRUE TRUE [1] FALSE FALSE FALSE FALSE [1] TRUE [1] FALSE
Переменные языка R могут присваиваться с использованием операторов влево, вправо или равно.
В таблице перечислены операторы присваивания, поддерживаемые языком R.
Оператор | Описание |
---|---|
<− = <<− | Влево присваивание。 |
−> −>> | Вправо присваивание。 |
# Влево присваивание v1 <- c(3,1,TRUE,"w3codebox") v2 <<- c(3,1,TRUE,"w3codebox") v3 = c(3,1,TRUE,"w3codebox") print(v1) print(v2) print(v3) # Вправо присваивание c(3,1,TRUE,"w3codebox") -> v1 c(3,1,TRUE,"w3codebox") ->> v2 print(v1) print(v2)
Результат выполнения кода приведен ниже:
[1] "3" "1" "TRUE" "w3codebox" [1] "3" "1" "TRUE" "w3codebox" [1] "3" "1" "TRUE" "w3codebox" [1] "3" "1" "TRUE" "w3codebox" [1] "3" "1" "TRUE" "w3codebox"
Язык R также содержит некоторые особые операторы.
Оператор | Описание |
---|---|
: | Оператор ':' используется для создания вектора из ряда чисел. |
%in% | Используется для проверки, находится ли элемент в векторе, возвращает логическое значение TRUE, если есть, FALSE, если нет. |
%*% | Используется для умножения матрицы на её транспонированную матрицу. |
# Вектор от 1 до 10 v <- 1:10 print(v) # Проверка того, находится ли число в векторе v v1 <- 3 v2 <- 15 print(v1 %in% v) print(v2 %in% v) # Умножение матрицы на её транспонированную матрицу M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) t = M %*% t(M) print(t)
Результат выполнения кода приведен ниже:
[1] 1 2 3 4 5 6 7 8 9 10 [1] TRUE [1] FALSE [,1] [,2] [1,] 65 82 [2,] 82 117
Часто используются некоторые математические функции:
Функция | Описание |
---|---|
sqrt(n) | Корень из n |
exp(n) | e в степени n, |
log(m,n) | Функция логарифма m, возвращающая степень n, равную m |
log10(m) | Эквивалент log(m,10) |
Примеры использования математических функций приведены ниже:
> sqrt(4) [1] 2 > exp(1) [1] 2.718282 > exp(2) [1] 7.389056 > log(2,4) > pnorm(0) > log10(10000) [1] 4
Функция округления:
Название | Модель параметра | Значение |
---|---|---|
round | (n) | Округление n до целого числа |
(n, m) | Округление n до m десятичных знаков | |
ceiling | (n) | Натуральное число n, умноженное на 10 |
floor | (n) | Натуральное число n, деленное на 10 |
Примеры использования функции округления приведены ниже:
> round(1.5) [1] 2 > round(2.5) [1] 2 > round(3.5) [1] 4 > round(4.5) [1] 4
注意Внимание
Пункт: функция round в R может "отбрасывать пять" в некоторых случаях.
Когда целое значение является четным, пять также отбрасывается, что differs от языка C.
Тригонометрические функции в R измеряются в градусах: > pnorm(0) > sin(pi/6) > cos(pi/4) [1] 0.7071068 > tan(pi/3)
[1] 1.732051
Обратные тригонометрические функции: > asin(0.5) [1] 0.5235988 > acos(0.7071068) [1] 0.7853981 > atan(1.732051)
[1] 1.047198
Пример > dnorm(0) [1] 0.3989423 > pnorm(0) [1] 0.5 > qnorm(0.95) [1] 1.644854 > rnorm(3, 5, 2) # Генерирует 3 случайных числа с средним значением 5 и стандартным отклонением 2
[1] 4.177589 6.413927 4.206032
Эти четыре функции используются для расчета нормального распределения. Имена всех этих функций оканчиваются на norm, что означает "нормальное распределение".
Префиксы имен функций распределения есть四种: d
- Функция плотности вероятности p
- Функция интеграла плотности вероятности (интеграл от бесконечно малого до x) q
- Функция квантилей r
- Функция генерации случайных чисел (часто используется для имитации вероятностных仿真)Примечание