R 언어 정의: 연산자
R 언어 정의: 연산자
R의 연산자는 C 언어와 유사한 산술 표현식을 제공하며, 함수 호출과 동일하게 다뤄져요. 이 섹션에서는 주요 연산자 목록과 벡터화 동작, 인덱싱 기초를 살펴볼게요.
본문
3.1.4 연산자
R은 C 프로그래밍 언어와 유사한 연산자를 사용한 산술 표현식을 허용합니다. 예를 들어
> 1 + 2
[1] 3
표현식은 괄호로 묶거나 함수 호출과 섞어서 변수에 간단하게 할당할 수 있습니다.
> y <- 2 * (a + log(x))
R에는 여러 연산자가 있습니다. 아래 표에 나열되어 있습니다.
| 연산자 | 설명 |
|---|---|
- |
빼기, 단항 또는 이항으로 사용 가능 |
+ |
더하기, 단항 또는 이항으로 사용 가능 |
! |
단항 부정 |
~ |
틸드, 모델 수식에 사용, 단항 또는 이항으로 사용 가능 |
? |
도움말 |
: |
시퀀스, 이항 (모델 수식에서는 상호작용) |
* |
곱셈, 이항 |
/ |
나눗셈, 이항 |
^ |
거듭제곱, 이항 |
%x% |
특수 이항 연산자, x는 유효한 이름으로 대체 가능 |
%% |
나머지, 이항 |
%/% |
정수 나눗셈, 이항 |
%*% |
행렬 곱, 이항 |
%o% |
외적, 이항 |
%x% |
크로네커 곱, 이항 |
%in% |
매칭 연산자, 이항 (모델 수식에서는 중첩) |
`% |
|
< |
작음, 이항 |
> |
큼, 이항 |
== |
같음, 이항 |
>= |
크거나 같음, 이항 |
<= |
작거나 같음, 이항 |
& |
논리곱, 이항, 벡터화됨 |
&& |
논리곱, 이항, 벡터화되지 않음 |
` |
` |
` |
|
<- |
왼쪽 할당, 이항 |
-> |
오른쪽 할당, 이항 |
$ |
리스트 부분집합, 이항 |
구문을 제외하면 연산자를 적용하는 것과 함수를 호출하는 것 사이에는 차이가 없습니다. 실제로 x + y는 `+`(x, y)로 동등하게 작성할 수 있습니다. '+'는 비표준 함수 이름이므로 따옴표로 묶어야 합니다.
R은 데이터 벡터 전체를 한 번에 처리하며, 대부분의 기본 연산자와 log 같은 기초 수학 함수는 벡터화되어 있습니다(위 표에 표시된 대로). 즉, 예를 들어 길이가 같은 두 벡터를 더하면 벡터 인덱스를 암시적으로 반복하며 요소별 합이 담긴 벡터가 생성됩니다. 이는 -, *, / 같은 다른 연산자와 더 높은 차원의 구조에도 적용됩니다. 특히 두 행렬을 곱해도 일반적인 행렬 곱이 생성되지 않는다는 점에 주의하세요(그 용도로 %*% 연산자가 있습니다). 벡터화 연산과 관련된 세부 사항은 '기본 산술 연산'에서 다룹니다.
원자 벡터의 개별 요소에 접근하려면 일반적으로 x[i] 구문을 사용합니다.
> x <- rnorm(5)
> x
[1] -0.12526937 -0.27961154 -1.03718717 -0.08156527 1.37167090
> x[2]
[1] -0.2796115
리스트 구성 요소는 x$a 또는 x[[i]]를 사용하여 더 일반적으로 접근합니다.
> x <- options()
> x$prompt
[1] "> "
인덱싱 구문은 할당의 오른쪽에도 나타날 수 있습니다.
다른 연산자와 마찬가지로 인덱싱도 실제로는 함수에 의해 수행되며, x[2] 대신 `[`(x, 2)를 사용할 수 있습니다.
R의 인덱싱 연산에는 많은 고급 기능이 있으며, 이는 '인덱싱'에서 자세히 설명됩니다.