더북(TheBook)

.combine=c를 지정하면 결과를 벡터로 받는다.

> foreach(i=1:5, .combine=c) %do% {
+   return(i)
+ }
[1] 1 2 3 4 5

.combine에 rbind를 지정하면 결과를 행 방향으로 합친 데이터 프레임을 반환하며, cbind를 지정하면 컬럼 방향으로 합친다.

> foreach(i=1:5, .combine=rbind) %do% {
+   return(data.frame(val=i))
+ }
  val
1   1
2   2
3   3
4   4
5   5

> foreach(i=1:5, .combine=cbind) %do% {
+   return(data.frame(val=i))
+ }
  val val val val val
1   1   2   3   4   5

그러나 rbind나 cbind는 속도가 느릴 수 있다. 따라서 일단 리스트로 결과를 받고 rbindlist( )를 하는 방법에 대해서도 고려하기 바란다.

.combine에는 또한 연산자를 지정할 수 있다. 예를 들어, +를 지정하면 모든 결과를 합한 결과를 반환한다. 다음은 1부터 10까지의 합을 계산하는 예다.

> foreach(i=1:10, .combine="+") %do% {
+   return(i)
+ }
[1] 55
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.