더북(TheBook)

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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.