split()
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