English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R 기본 연산

이 장에서는 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) 등 일반 분포 함수를 포함하고 있으며, 자세히 알고 싶다면 "확률론 및 수리 통계"를 공부할 수 있습니다.