R 언어 정의: 연산자

R 언어 정의: 연산자

R의 연산자는 C 언어와 유사한 산술 표현식을 제공하며, 함수 호출과 동일하게 다뤄져요. 이 섹션에서는 주요 연산자 목록과 벡터화 동작, 인덱싱 기초를 살펴볼게요.

출처: R Language Definition - Operators

본문

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의 인덱싱 연산에는 많은 고급 기능이 있으며, 이는 '인덱싱'에서 자세히 설명됩니다.

더 알아보기 (Learn more)

출처: R Language Definition - 연산자