R mutate if 함수 - R mutate if hamsu

데이터를 분석하려면 데이터를 분석에 적절한 형식으로 변환하는 전처리가 필요하다. 또한 기본적인 분석을 위해서도 데이터를 요약하는 작업이 필요하다. 이 장에서는 정돈 형식의 데이터 프레임을 변환하는 방법을 배운다.

정돈 데이터란 그림 7.1처럼 다음의 조건을 만족하는 데이터 행렬(R에서는 데이터 프레임)의 형식을 의미한다.

  • 데이터 행렬의 각 행과 관측(대상)(observations)은 일대일의 관계이다.
  • 데이터 행렬의 각 열과 변수(variables)는 일대일의 관계이다.
  • 측정값(values)은 각 셀과 일대일의 관계이다.

filter(mpg, manufacturer=="hyundai")

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…

조건을 서술할 때 자주 틀리는 부분이 등호 기호로 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows35를 사용하는 것이다. R에서 두 값이 같은지를 비교할 때는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows36를 사용한다.

다음처럼 조건에 사용되는 변수에 대해 연산을 수행한 후에 그 결과를 비교할 수도 있다.

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv

두 개 이상의 조건을 모두 만족하는 행만 뽑아내려면 다음의 문법을 사용한다.

filter(데이터프레임, 조건1, 조건2, ..., 조건n)

다음은 현대에서 생산한 차 중 도심 연비가 20 마일 이상인 차만 추출한 결과이다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows0

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows1

앞의 조건에서 배기량이 2.4 이상인 차만 추출해 보자.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows2

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows3

지금까지는 하나의 조건이나 여러 조건을 동시에 만족하는 행을 추출하는 방법을 보았다. 어떤 경우에는 여러 조건 중 하나라도 만족하면 그 행을 추출해야 할 경우가 있다. 이러한 경우에는 2 장에서 배운 논리 연산자를 이용하여 복합 조건을 만들어야 한다.

다음은 OR 연자자인 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows37를 이용하여 두 조건 중 하나만 만족하여도 행이 추출되도록 하였다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows4

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows5

만약 위의 결과에서 2008년도 데이터만 추출하고 싶다면 어떻게 해야 할까? 다음처럼 두 조건식을 사용하여 첫 번째 조건과 두 번째 조건을 모두 만족하는 결과만 추출할 수도 있고, 하나의 조건식에 AND 연산자인 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows38를 사용하여 복합 조건식을 사용하여 추출할 수도 있다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows6

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows7

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows8

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows7

단, 복합 조건식에서 AND 연산이 OR 연산보다 우선순위가 있으므로 괄호를 사용하여 연산의 순서가 제대로 되도록 하여야 한다. 괄호가 없으면 AND가 수행된 후 OR가 수행되어 모든 소타나 자동차의 결과가 추출되었음을 볼 수 있다.

filter(데이터프레임, 조건)0

filter(데이터프레임, 조건)1

만약 조사 년도가 2008년이고, 고속도로 연비가 30 이상이면서, 자동차 모델이 sonata 또는 corolla 또는 jetta인 행을 찾고자 한다면 어떻게 해야 할까? 앞에서 배운 복잡 조건문을 사용하여 다음처럼 수행할 수 있을 것이다.

filter(데이터프레임, 조건)2

filter(데이터프레임, 조건)3

위의 명령은 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows39 연산자를 사용하면 좀 더 간단해 질 수 있다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows39 연산자는 어떤 값이 벡터의 요소 중에 하나인지를 판별해 준다.

filter(데이터프레임, 조건)4filter(데이터프레임, 조건)5filter(데이터프레임, 조건)5filter(데이터프레임, 조건)4

그러므로 앞에서 수행한 명령은 다음처럼 수행할 수도 있다.

filter(데이터프레임, 조건)8

filter(데이터프레임, 조건)3

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows16는 다음 문법을 사용하여 행을 정렬한다.

filter(mpg, manufacturer=="hyundai")0

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows15와 마찬가지로 첫 번재 인수로 정렬할 데이터 프레임을 전달 받는다. 그리고 두번재 인수부터 정렬의 기준이 되는 변수를 차례로 기술한다. 첫 번째 기준 변수의 값이 같으면, 두 번째 기준 변수를, 두 번째 기준 변수의 값까지 같으면 그 다음 변수를 기준으로 차례로 순서를 결정하여 정렬을 수행한다.

다음은 2008년도 현대의 자동차 모델만 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows15론 선택하여 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows44라는 변수에 저장한 후, 이 데이터에 대하여 여러 조건으로 정렬을 수행해본 예이다.

filter(mpg, manufacturer=="hyundai")1

filter(mpg, manufacturer=="hyundai")2filter(mpg, manufacturer=="hyundai")3filter(mpg, manufacturer=="hyundai")4filter(mpg, manufacturer=="hyundai")5

앞의 예에서 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows16는 수치 변수는 올림차순으로 문자 변수는 알파벳 순으로 정렬하는 것을 볼 수 있다. 만약 위의 예에서 내림차순으로, 또는 알파벳 역순으로 정렬을 하고 싶으면 어떻게 하여야 할까? #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows10 패키지는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows47를 이용하면 된다.

filter(mpg, manufacturer=="hyundai")6filter(mpg, manufacturer=="hyundai")7filter(mpg, manufacturer=="hyundai")8

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows47가 적용된 변수만 내림차순을 기준으로 정렬을 하는 것을 볼 수 있다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수는 다음처럼 변수 이름을 일일이 나열하여 원하는 열을 선택할 수 있다. R의 기본 문법을 알고 있는 사람들은 데이터 프레임의 인덱싱에서처럼 문자열로 이름을 나열하는 것이 아니라 변수를 사용하듯 따옴표 없이 이름을 나열하는 것에 주의한다.

filter(mpg, manufacturer=="hyundai")9#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…0

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수는 다음처럼 변수 이름으로 선택할 변수의 범위를 지정할 수 있다.

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…1#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…2#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…3

반대로 다음처럼 변수 이름으로 선택하지 않을 변수의 범위를 지정할 수 있다.

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…4#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…5

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…6

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…7

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수는 R의 기본 인덱싱(필터링)처럼 선택할 열의 위치를 자연수 인덱스 벡터로, 선택하지 않을 열은 음의 정수 인덱스 벡터로 지정할 수도 있다.

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…8

#> # A tibble: 14 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 hyundai sonata 2.4 1999 4 auto(l4) f 18 26 r mids… #> 2 hyundai sonata 2.4 1999 4 manual(… f 18 27 r mids… #> 3 hyundai sonata 2.4 2008 4 auto(l4) f 21 30 r mids… #> 4 hyundai sonata 2.4 2008 4 manual(… f 21 31 r mids… #> 5 hyundai sonata 2.5 1999 6 auto(l4) f 18 26 r mids… #> 6 hyundai sonata 2.5 1999 6 manual(… f 18 26 r mids… #> 7 hyundai sonata 3.3 2008 6 auto(l5) f 19 28 r mids… #> 8 hyundai tiburon 2 1999 4 auto(l4) f 19 26 r subc… #> 9 hyundai tiburon 2 1999 4 manual(… f 19 29 r subc… #> 10 hyundai tiburon 2 2008 4 manual(… f 20 28 r subc… #> 11 hyundai tiburon 2 2008 4 auto(l4) f 20 27 r subc… #> 12 hyundai tiburon 2.7 2008 6 auto(l4) f 17 24 r subc… #> 13 hyundai tiburon 2.7 2008 6 manual(… f 16 24 r subc… #> 14 hyundai tiburon 2.7 2008 6 manual(… f 17 24 r subc…9

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…0

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…1

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…2

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows10 패키지는 다양한 형태로 변수를 선택할 수 있도록 다음의 변수 이름 매칭 함수를 제공한다. 이러한 함수는 변수의 수가 많을 때 매우 유용하다.

  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows53: abc로 이름이 시작하는 모든 변수
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows54: abc로 이름이 끝나는 모든 변수
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows55: abc를 이름에 포함하고 있는 모든 변수
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows56: 정규 표현식을 만족하는 이름을 가진 모든 변수
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows57: “x1”, “x2”, “x3”이라는 이름의 변수
#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…3

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수에 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59 함수를 사용하면 해당 조건에 맞는 열만 매칭하여 선택할 수 있다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59 함수는 유일한 인수로 함수를 입력받는데, 이 함수는 논리값을 반환하는 함수여야 하며, #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59 함수는 각 열에 이 함수를 적용한다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59의 결과가 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows64인 열만 선택한다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59 함수가 주로 사용되는 곳은 데이터 형식에 따라 열을 선택할 때이다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows66로 시작하는 함수들은 어떤 객체가 특정 형식인지를 테스트 한다. 다음 예는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows59와 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows68 함수를 사용하여 문자열인 열만 선택한 것이다.

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…4

다음 예는 무기명 함수를 이용하여 열이 수치 벡터이고, 열의 평균이 10 이상인 열만 출력한 것이다.

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…5

또는 다음처럼 purr 형식의 수식으로 무기명 함수를 좀 더 간략하게 정의할 수도 있다.

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…6

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수에서 변수 이름을 지정할 때, #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows70 형식으로 지정하면 변수의 이름을 바꿀 수 있다.

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…7

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…8

만약 전체 데이터를 유지한 상태에서 변수 이름만 변경하려면, #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows71 함수를 이용한다. 문법은 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17와 같다.

#> # A tibble: 3 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 3 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…9

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…0

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수는 나열된 변수의 순서에 따라 새롭게 만들어진 데이터 프레임의 변수의 순서를 조정한다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…1#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…2

이러한 성질과 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows74 함수를 이용하면 변수의 순서를 쉽게 바꿀 수 있다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows74은 이미 선택된 변수를 제외한 나머지 변수를 의미한다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…3

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows18는 기존 변수를 이용하여 새로운 변수를 만들어 데이터 프레임의 가장 마지막 열로 추가한다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…4

다음은 도심 연비와 고속도로 연비의 합과, 평균, 그리고 고속도로 대비 도심 연비의 비율(%)을 계산하여 새로운 열을 만든 예이다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…5

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…6#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…7

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…8

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 honda civic 1.6 1999 4 manua… f 28 33 r subc… #> 2 toyota corolla 1.8 2008 4 manua… f 28 37 r comp… #> 3 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 4 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc… #> 5 volkswagen new beetle 1.9 1999 4 auto(… f 29 41 d subc…9

만약 새롭게 만들어진 변수만 데이터에 남기려면 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows18 대신 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows78를 사용한다. 문법은 두 함수가 동일하다.

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…0

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…1

새로운 변수를 생성할 때, 기존 변수와 관련된 수치, 논리, 문자열 연산을 수행할 수 있다. 다음처럼 제조사와 모델을 하나로 합쳐서 새로운 변수를 만들수도 있고, 배기량이 3 이상인지 여부를 나타내는 변수도 만들 수 있다.

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…2

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…3

아울러 다음 함수가 새로운 변수를 만들 때 자주 사용된다.

다음의 가상의 상점의 월별 매출 데이터를 사용하여 위에서 설명한 함수의 기능을 살펴보자.

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…4

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…5

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…6

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…7

다음은 앞의 예에서 만든 b라는 데이터프레임에 일련번호를 사용하여 id라는 열을 추가한 사례이다.

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…8

#> # A tibble: 2 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 volkswagen jetta 1.9 1999 4 manua… f 33 44 d comp… #> 2 volkswagen new beetle 1.9 1999 4 manua… f 35 44 d subc…9

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수는 데이터프레임을 하나의 행으로 요약한다. 하나의 행으로 요약하기 위하여 변수의 모든 값을 하나의 값으로 통계요약하는 함수를 주로 이용한다. 대표적인 통계요약 함수는 다음과 같다.

  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows80: 행의 수를 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows81: 수치 변수의 합을 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows82: 수치 변수의 균을 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows83: 수치 변수의 중위수를 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows84: 수치 변수의 표준편차를 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows85: 수치 변수의 분산을 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows86: 수치 변수의 최소값을 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows87: 수치 변수의 최대값을 구한다.
  • #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows88probs` 분위수를 구한다.

다음은 도심 연비의 데이터 수, 평균, 중위수, 최소값, 최대값을 구한 결과이다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv0

다음처럼 여러 변수에 대하여 통계 요약할 수도 있다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv1

앞의 예에서 우리는 도심 연비와 고속도로 연비 열에 대해 동일한 통계요약 함수를 적용하였다. 동일한 통계요약 함수를 적용할 열이 한두 개이면 앞의 예처럼 일일이 기술해주면 되지만, 적용해야 할 열이 많아지면 이를 일일이 기술하는 것은 번잡할 뿐만 아니라 오류의 발생 가능성을 높이고 나중에 코드를 변경하기 어렵게 만든다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows89 함수는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17처럼 열을 선택하여 동일한 함수를 적용할 수 있게 해준다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows89 함수는 두 개의 주요 인수를 가지고 있다.

  • 첫 번째 인수는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows92로 함수를 적용할 열을 지정한다. 열의 지정은 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows17 함수처럼 변수 이름, 위치, 형식으로 지정할 수 있다.
  • 두 번재 인수는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows94로 열에 적용할 함수를 지정한다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows89 함수는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수와 함께 자주 사용되는데 다음처럼 사용된다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv2

여러 함수를 함께 적용하려면 함수를 리스트로 묶어서 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows94 인수로 전달한다. 이 때 리스트의 요소의 이름을 부여하면 열이름과 해당 요소의 이름으로 결과 열의 이름이 생성된다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv3

결과 열의 이름을 다른 형태로 지정하고 싶으면 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows98 인수에 원하는 형식을 함수 이름을 나타내는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows99과 열의 이름을 나타내는 filter(데이터프레임, 조건)00을 사용하여 설정할 수 있다. 다음은 함수 이름 후에 filter(데이터프레임, 조건)01가 나온 후 열 이름이 나오도록 한 것이다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv4

만약 지금처럼 적용되는 열을 기준으로 정렬되는 것이 아니라 함수 별로 정렬되어 결과가 나오게 하고 싶으면, #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows89 함수를 각 함수 별로 적용을 한다. 이 때 서로 열 이름이 충돌이 나지 않도록 filter(데이터프레임, 조건)03 인수를 설정해 준다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv5

다음 예는 모든 수치 열에 대하여 표준편차를 구한 것이다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv6

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv7

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows13 함수는 기준이 되는 변수의 구분되는 값에 따라 데이터를 그룹화한다. 그룹화된 결과를 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수에 전달하면 그룹별로 요약된 결과를 출력한다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv8

그룹화된 결과를 출력해 보면, 원 데이터인 filter(데이터프레임, 조건)06와 같아보이는데, 출력시 model 변수로 그룹화 되어 있다는 것이 같이 출력된다.

#> # A tibble: 5 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 dodge dakota pic… 4.7 2008 8 auto… 4 9 12 e pick… #> 2 dodge durango 4wd 4.7 2008 8 auto… 4 9 12 e suv #> 3 dodge ram 1500 p… 4.7 2008 8 auto… 4 9 12 e pick… #> 4 dodge ram 1500 p… 4.7 2008 8 manu… 4 9 12 e pick… #> 5 jeep grand cher… 4.7 2008 8 auto… 4 9 12 e suv9

변수를 여러 개를 조합하여 그룹화를 할 수도 있다.

filter(데이터프레임, 조건1, 조건2, ..., 조건n)0filter(데이터프레임, 조건1, 조건2, ..., 조건n)1

여러 변수로 그룹화를 하면 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수는 그룹별로 하나의 행만 생성이 되었으면 결과에서 마지막 그룹을 제거한다. 위의 결과에서는 model과 cyl의 값의 조합에 대하여 하나의 행만 생성되었으므로, 마지막 그룹 변수인 cyl와 관련된 그룹은 사라지고, model과 관련된 그룹만 남는다. 출력된 결과와 메시지에서 이를 확인할 수 있다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수의 filter(데이터프레임, 조건)09 인수를 사용하면 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 후에 그룹을 유지할지, 모두 없앨지 등을 조정할 수 있다. 관심있는 독자는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19 함수의 도움말을 참조하기 바란다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows13는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows19와 함께 자주 사용되지만, #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows18나 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows15 등의 다른 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows10 함수와 함께 사용될 수 있다.

다음은 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows18로 전체 대이터에 대하여 고속도로 연비 순으로 순위를 매기는 것과, filter(데이터프레임, 조건)18와 함께 사용하여 모델별로 고속도로 연비의 순위를 매긴 것을 비교하여 보여 주고 있다.

filter(데이터프레임, 조건1, 조건2, ..., 조건n)2filter(데이터프레임, 조건1, 조건2, ..., 조건n)3

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows29 데이터에서 조사 연도와 모델 별로 데이터 수와 도심 연비의 평균을 구한 후, 평균이 22 이상인 모델로 이루어진 행을 추출하려고 한다. 이를 수행하려면 다음처럼 변수를 이용하여 결과를 차례로 전달하거나, 함수를 결합하여 한 문장에 사용하여야 한다.

filter(데이터프레임, 조건1, 조건2, ..., 조건n)0filter(데이터프레임, 조건1, 조건2, ..., 조건n)5filter(데이터프레임, 조건1, 조건2, ..., 조건n)0filter(데이터프레임, 조건1, 조건2, ..., 조건n)5

전자는 불피요하게 중간 결과를 저장할 변수를 만들어야 하고, 후자는 복잡하여 이 명령이 무엇을 하는 명령어인지 쉽게 파악하기 힘들다. 또한 중첩된 괄호 때문에 오류가 발생하기 쉽다.

파이프 연산자는 데이터 변환이 여러 단계를 거칠 때 불필요한 변수의 생성 없이도 함수 간에 중간 데이터를 전달할 수 있게 해 준다.

파이프 연산자는 앞의 함수의 결과를 뒤 함수의 첫 번째 인수로 전달해 준다. 파이프 연산자를 사용할 때는 그러므로 첫 번째 인수는 생략하여 기술한다. 파이프 연산자로는 filter(데이터프레임, 조건)20 패키지가 제공하는 filter(데이터프레임, 조건)21 연산자를 사용할 수도 있고, R 4.1.0 버전부터 도입된 기본 기능에 포함된 filter(데이터프레임, 조건)22 연산자를 사용할 수도 있다. 여기서는 R 버전이 낮은 사용자에게도 동일하게 적용될 수 있도록 filter(데이터프레임, 조건)21 연산자를 사용하도록 한다. 이 연산자는 #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows04 패키지를 적재하였으면 사용할 수 있다.

다음은 앞의 예와 동일한 예를 파이프 연산자를 사용하여 수행한 결과이다.

filter(데이터프레임, 조건1, 조건2, ..., 조건n)0filter(데이터프레임, 조건1, 조건2, ..., 조건n)5

불필요하게 데이터를 기술하는 부분이 사라져서 각 단계에서 수행하는 작업이 무엇인지 명확하게 들어나고 불필요한 중간 변수를 만들지 않아도 되므로 파이프 연산자는 매우 편리하다.

그런데 파이프 연산자를 사용하려면 앞의 함수의 결과가 뒤의 함수의 첫 인수로 사용하기 적절한 형태이어야 한다. #> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows10 패키지의 주요 함수들은 정돈 데이터 형식으로 데이터의 결과를 반환하고, 첫 인수가 정돈 데이터 형식의 데이터로 간주한다.

파이프 연산자를 사용할 때 주의할 점은 여러 줄로 명령을 기술할 때, 파이프 연산자로 중간 문장이 종료되어야 한다는 것이다. 그래야 아직 문장이 완료되지 않았다는 것을 이해하여 다음 단계의 명령이 입력되기를 기다린다. 다음처럼 기술하면 R은 명령 입력이 중간에 완료된 것으로 보고 잘못된 결과를 출력한다.

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows00

#> # A tibble: 234 × 11 #> manufacturer model displ year cyl trans drv cty hwy fl class #> #> 1 audi a4 1.8 1999 4 auto… f 18 29 p comp… #> 2 audi a4 1.8 1999 4 manu… f 21 29 p comp… #> 3 audi a4 2 2008 4 manu… f 20 31 p comp… #> 4 audi a4 2 2008 4 auto… f 21 30 p comp… #> 5 audi a4 2.8 1999 6 auto… f 16 26 p comp… #> 6 audi a4 2.8 1999 6 manu… f 18 26 p comp… #> 7 audi a4 3.1 2008 6 auto… f 18 27 p comp… #> 8 audi a4 quattro 1.8 1999 4 manu… 4 18 26 p comp… #> 9 audi a4 quattro 1.8 1999 4 auto… 4 16 25 p comp… #> 10 audi a4 quattro 2 2008 4 manu… 4 20 28 p comp… #> # … with 224 more rows #> # ℹ Use `print(n = ...)` to see more rows01

filter(데이터프레임, 조건)21 연산자 이외에도 연산 결과를 출력도 하고 결과를 반환하고 싶을 때 사용하는 filter(데이터프레임, 조건)27 연산자, 입력된 객체에 결과를 재할당하고 싶을 때 사용하는 filter(데이터프레임, 조건)28 연산자 등도 있으니 관심있는 독자는 도움말을 살펴보기 바란다.

Toplist

최신 우편물

태그