split()

    split( )은 조건에 따라 데이터를 분리하는 데 사용한다.

    표 4-22 split( ) 함수

    split : 주어진 기준에 따라 데이터를 분리한다.

    split(
      x,  # 분리할 벡터 또는 데이터 프레임
      f   # 분리할 기준을 저장한 팩터
    )

    반환 값은 분리된 데이터를 저장한 리스트다.

    다음은 iris 데이터를 iris$Species에 따라 분리하고 결과를 리스트에 저장하는 예다.

    > split(iris, iris$Species)
    $setosa
      Sepal.Length Sepal.Width Petal.Length Petal.Width Species
    1          5.1         3.5          1.4         0.2  setosa
    2          4.9         3.0          1.4         0.2  setosa
    ...
    
    $versicolor
        Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
    51           7.0         3.2          4.7         1.4 versicolor
    52           6.4         3.2          4.5         1.5 versicolor
    ...
    
    $virginica
        Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
    101          6.3         3.3          6.0         2.5 virginica
    102          5.8         2.7          5.1         1.9 virginica
    ...
    

    split( )의 실행 결과가 리스트므로, split( ) 후 lapply( )를 적용하면 iris의 종별 Sepal.Length의 평균을 구할 수 있다. 다음 코드를 앞서 설명한 tapply( )의 경우와 비교해보기 바란다.

    > lapply(split(iris$Sepal.Length, iris$Species), mean)
    $setosa
    [1] 5.006
    
    $versicolor
    [1] 5.936
    
    $virginica
    [1] 6.588
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.