English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 장에서는 R 언어의 간단한 연산을 소개합니다。
일반 언어의 할당은 = 표시기는 있지만, R 언어는 수학 언어이므로 할당 연산자는 수학 책의 가상 코드와 유사하며, 왼쪽 화살표 <로 나타납니다- :
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 [1] 0.5 > 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 FALSE FALSE FALSE [1] FALSE FALSE TRUE FALSE [1] FALSE TRUE FALSE TRUE [1] TRUE FALSE TRUE FALSE [1] TRUE TRUE FALSE TRUE [1] FALSE 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) [1] 0.5 > log10(10000) [1] 4
정의 함수:
이름 | 파라미터 모델 | 의미 |
---|---|---|
round | (n) | n에 대하여 四捨五입 |
(n, m) | n에 대하여 m 자리 소수점으로四捨五입 | |
ceiling | (n) | n에 대하여 올림으로서 정의 |
floor | (n) | n에 대하여 내림으로서 정의 |
)
> round(1.5) [1] 2 > round(2.5) [1] 2 > round(3.5) [1] 4 > round(4.5) [1] 4
주의:R의 round 함수는 몇 가지 경우에 "5를 버리는" 경우가 있습니다.
짝수로 나눠서 몫을 뺄 때, 5는 버려집니다. 이는 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) 등 일반 분포 함수를 포함하고 있으며, 자세히 알고 싶다면 "확률론 및 수리 통계"를 공부할 수 있습니다.