R 언어에서 pipe
는 데이터를 효과적으로 전달하고 조작하는데 사용되는 연산자이다. R에서 가장 널리 사용되는 파이프 연산자는 magrittr
패키지의 %>%
기호이고, 데이터를 연속적으로 다루는데 효과적이다. 파이프 연산자는 일반적으로 함수를 연결하여 코드를 더 읽기 쉽게 만들어주고 중첩된 함수 호출을 방지한다. 개인적으로는 파이프를 사용하면 데이터 처리 단계를 자연스럽게 나타낼 수 있어 코드 가독성이 좋다고 생각한다.
pipe 연산자를 사용하지 않는 경우, 아래와 같이 중간마다 변수명을 지정해서 단계별로 로직을 풀어가야 한다. 아니면 그게 싫다고 한줄 코딩을 하려고 하면 코드 가독성은 현저히 떨어진다.
# 1. 단계별 중간변수 지정
t1 = enframe(c(4,8,2,9), name = NULL)
t2 = filter(t1, value > 5)
t3 = summarise(t2, total = sum(value))
# 2. 아니면 한줄 코딩
summarise(filter(enframe(c(4,8,2,9), name = NULL),
value > 5),
total = sum(value))
# 결과
# A tibble: 1 × 1
total
<dbl>
1 17
하지만, magrittr
패키지의 %>%
연산자를 사용하면 아래와 같이 코드가 간결해진다.
enframe(c(4,8,2,9), name = NULL) %>%
filter(value > 5) %>%
summarise(total = sum(value))
# A tibble: 1 × 1
total
<dbl>
1 17
R 기본 파이프
magrittr
같은 외부 라이브러리 설치 없이 R 4.1+
버전 부터 기본적으로 파이프 기능을 하는 |>
연산자가 추가되었다.
이런 모양을 생각하고 만든게 아닌가 싶다.
enframe(c(4,8,2,9), name = NULL) |>
filter(value > 5) |>
summarise(total = sum(value))
RStudio 에서는 파이프연산자를 Shift+Command+M
단축키로 제공하고 있는데, %>%
에서 |>
로 변경하고 싶다면 설정에서 변경할 수 있다. [Tools]-[Global Options]
메뉴로 들어가서, Code
탭 옵션 중에 Use native pipe operator, |> (requires R 4.1+) 에
체크표시를 해주면 끝이다.