English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Strumenti online
Assegnazione = Il simbolo di assegnazione di un linguaggio generale è
a <- 123 b <- 456 print(a + b)
Risultato dell'esecuzione del codice sopra:
[1] 579
Questo simbolo di assegnazione è un vantaggio formale e un difetto operativo del linguaggio R: formalmente più adatto ai matematici, poiché non tutti i matematici sono abituati a usare = Simbolo di assegnazione.
In termini di operazione, i simboli < e - non sono molto facili da digitare, il che può disorientare molti programmatori. Pertanto, le versioni più recenti del linguaggio R supportano = come simbolo di assegnazione:
a = 123 b = 456 print(a + b)
这也是合法的 R 程序。
注意:很难考证从 R 的哪个版本开始支持了 = 赋值,但是本教程习用的 R 版本是 4.0.0。
下表列出了主要的数学运算符以及他们的运算顺序:
优先级 | 符号 | Significato |
---|---|---|
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 [1] 0.5 > 8 / 3 %% 2 [1] 8 > 8 / 4 %% 2 [1] Inf > 3 %% 2^2 [1] 3 > 10 / 3 %% 2 [1] 10
下表列出了 R 语言支持的关系运算符,关系运算符比较两个向量,将第一向量与第二向量的每个元素进行比较,结果返回一个布尔值。
Operatore | Descrizione |
---|---|
> | 判断第一个向量的每个元素是否大于第二个向量的相对应元素。 |
< | 判断第一个向量的每个元素是否小于第二个向量的相对应元素。 |
== | 判断第一个向量的每个元素是否等于第二个向量的相对应元素。 |
!= | 判断第一个向量的每个元素是否不等于第二个向量的相对应元素。 |
>= | 判断第一个向量的每个元素是否大于等于第二个向量的相对应元素。 |
<= | 判断第一个向量的每个元素是否小于等于第二个向量的相对应元素。 |
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)
L'output dell'esecuzione del codice sopra è:
[1] TRUE FALSO FALSO FALSO [1] FALSO FALSO TRUE FALSO [1] FALSO TRUE FALSO TRUE [1] TRUE FALSO TRUE FALSO [1] TRUE TRUE FALSE TRUE [1] FALSO TRUE TRUE TRUE
La tabella seguente elenca gli operatori logici supportati da R, che possono essere utilizzati con vettori di numeri, logici e complessi.
Tutti i numeri maggiori di 1 sono TRUE.
Gli operatori logici confrontano due vettori, confrontando ciascun elemento del primo vettore con l'elemento corrispondente del secondo vettore, e restituiscono un valore booleano.
Operatore | Descrizione |
---|---|
& | L'operatore logico e elementare combina ciascun elemento del primo vettore con l'elemento corrispondente del secondo vettore. Se entrambi gli elementi sono TRUE, il risultato è TRUE, altrimenti è FALSE. |
| | L'operatore logico o elementare combina ciascun elemento del primo vettore con l'elemento corrispondente del secondo vettore. Se almeno uno degli elementi è TRUE, il risultato è TRUE, altrimenti è FALSE. |
! | L'operatore logico non, restituisce il valore logico opposto di ciascun elemento del vettore. Se l'elemento è TRUE, restituisce FALSE, e viceversa. |
&& | L'operatore logico e, confronta solo il primo elemento di due vettori. Se entrambi gli elementi sono TRUE, il risultato è TRUE, altrimenti è FALSE. |
|| | L'operatore logico o, confronta solo il primo elemento di due vettori. Se almeno uno degli elementi è TRUE, il risultato è TRUE, altrimenti è FALSE. |
v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t) print(v|t) print(!v) # &&, || confrontano solo il primo elemento 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)
L'output dell'esecuzione del codice sopra è:
[1] TRUE TRUE FALSE TRUE [1] TRUE TRUE TRUE TRUE [1] FALSE FALSE FALSE FALSE [1] TRUE [1] FALSE
Le variabili di R possono utilizzare operatori a destra, a sinistra o uguale per assegnare valori.
La tabella seguente elenca gli operatori di assegnazione supportati da R.
Operatore | Descrizione |
---|---|
<− = <<− | Assegnazione a sinistra。 |
−> −>> | Assegnazione a destra。 |
# Assegnazione a sinistra v1 <- c(3,1,TRUE,"w3codebox") v2 <<- c(3,1,TRUE,"w3codebox") v3 = c(3,1,TRUE,"w3codebox") print(v1) print(v2) print(v3) # Assegnazione a destra c(3,1,TRUE,"w3codebox") -> v1 c(3,1,TRUE,"w3codebox") ->> v2 print(v1) print(v2)
L'output dell'esecuzione del codice sopra è:
[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 Language contiene anche alcuni operatori speciali.
Operatore | Descrizione |
---|---|
: | Operatore colona, usato per creare una serie di numeri vettore. |
%in% | Usato per determinare se un elemento è nel vettore, restituisce TRUE se è presente, FALSE altrimenti. |
%*% | Usato per moltiplicare la matrice con la sua matrice trasposta. |
# Vettore da 1 a 10 v <- 1:10 print(v) # Giudicare se il numero è nel vettore v v1 <- 3 v2 <- 15 print(v1 %in% v) print(v2 %in% v) # Matrice e matrice trasposta M = matrix(c(2,6,5,1,10,4), nrow = 2, ncol = 3, byrow = TRUE) t = M %*% t(M) print(t)
L'output dell'esecuzione del codice sopra è:
[1] 1 2 3 4 5 6 7 8 9 10 [1] TRUE [1] FALSE [,1] [,2] [1,] 65 82 [2,] 82 117
Le funzioni comuni per alcune funzioni matematiche sono:
Funzione | Spiegazione |
---|---|
sqrt(n) | La radice quadrata di n |
exp(n) | Il numero e n-esimo potenza della costante naturale e |
log(m,n) | La funzione di logaritmo di m, restituisce n^x uguale a m |
log10(m) | Uguale a log(m,10) |
Esempio seguente dimostra l'applicazione delle funzioni matematiche:
> sqrt(4) [1] 2 > exp(1) [1] 2.718282 > exp(2) [1] 7.389056 > log(2,4) [1] 0.5 > log10(10000) [1] 4
Funzione di arrotondamento:
Nome | Modello dei parametri | Significato |
---|---|---|
round | (n) | Arrotondamento per n |
(n, m) | Arrotondamento a m cifre decimali per n | |
ceiling | (n) | Arrotondamento al di sopra per n |
floor | (n) | Arrotondamento al di sotto per n |
Esempio seguente dimostra l'applicazione della funzione di arrotondamento:
> round(1.5) [1] 2 > round(2.5) [1] 2 > round(3.5) [1] 4 > round(4.5) [1] 4
注意:R中的round函数有些情况下可能会"舍掉五"。
当取整位是偶数时,五也会被舍去,这一点与C语言不同。
函数三角R是弧度制:
> sin(pi/6) [1] 0.5 > 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
若学习过概率论和统计学,应比较了解以下概率分布函数,因为R语言为数学工作者设计,所以经常使用:
> 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 - 函数随机数(常用于概率仿真)
注:本教程非数学专业理论阐述教程,故概率分布数学理论不详细解释。R语言除含正态分布函数外,还有泊松分布(pois, Poisson)等常见分布函数,欲详细了解可学习"概率论与数理统计"。