더북(TheBook)

앞 코드가 간단해 보이지만, lapply() 함수를 사용한 다음 코드와 비교했을 때는 상대적으로 매우 장황하다.

> lapply(len, rnorm)
[[1]]
[1] -2.0125198   0.5049327   0.8281116

[[2]]
[1] 0.3358507   -1.0591244   1.5677167   -0.3701466

[[3]]
[1] 1.77903836   0.55140201   1.19031065   0.33060223   -0.06465223

lapply() 함수를 활용한 코드가 훨씬 간단하다. len 벡터의 각 요소에 대해 rnorm() 함수를 적용하고, 각 결과를 리스트로 반환한다.

앞 예제가 가능하려면 R에서 함수를 일반적인 객체와 마찬가지로 인수로 전달할 수 있어야 한다는 사실을 깨달아야 한다. 물론 이것은 사실이다. R의 함수는 객체와 마찬가지로 취급되며, 5.4절에서 설명한 것처럼 인수로 전달될 수 있다. 이러한 특징은 코딩의 유연성을 크게 향상시킨다.

apply 계열 함수는 함수를 인수로 받는 소위 고차 함수다. 이 개념은 나중에 자세히 설명한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.