python에서 function을 사용할 때 fun(*list) 형태의 코드들을 많이 볼 수 있다. 이를 unpacking이라 부르는데 function에서 arguments를 하나의 list로 입력할 수 있으므로, 자주 사용하는 함수의 옵션을 재사용할 수 있다는 장점이 있다.

R에서 이러한 unpacking을 써보고자 한다. R에서 보통 함수를 쓸 때는 arguments를 입력하기 때문에 아래와 같다.

## load data
library(forecast)
data=AirPassengers
data=data.frame(
  values=as.numeric(data),
  date=as.Date(
    paste0(trunc(time(AirPassengers)),'-',
    str_pad(cycle(AirPassengers), 2, pad = "0"),'-01')
  )
)

data_ran=range(data$date)
seq(data_ran[1],data_ran[2],by=3)
seq(data_ran[1],data_ran[2],len=3)

아래와 같이 unpack을 할 수 있다.

## load data
library(forecast)
data=AirPassengers
data=data.frame(
  values=as.numeric(data),
  date=as.Date(
    paste0(trunc(time(AirPassengers)),'-',
    str_pad(cycle(AirPassengers), 2, pad = "0"),'-01')
  )
)

ls=append(as.list(range(data$date)),list(3))
names(ls[1:2])=c('from','to')
do.call(seq,ls)

names(ls)=c('from','to','len')
do.call(seq,ls)