i have vector of dates , vector of number-of-days. dates <- seq(sys.date(), sys.date()+10, by='day') number.of.days <- 1:4 i need list entry each number-of-days, each entry in list dates vector minus corresponding number-of-days, ie., list(dates-1, dates-2, dates-3, dates-4) the defintion of - ( function (e1, e2) .primitive("-") ) indicates first , second arguments e1 , e2 , respectively. following should work. lapply(number.of.days, `-`, e1=dates) but raises error. error in -.date (x[[i]], ...) : can subtract "date" objects furthermore, following does work: lapply(number.of.days, function(e1, e2) e1 - e2, e1=dates) is feature or bug? you can use: lapply(number.of.days, `-.date`, e1=dates) part of problem - primitive doesn't argument matching. notice how these same: > `-`(e1=5, e2=3) [1] 2 > `-`(e2=5, e1=3) [1] 2 from r language definition : this subsection applies closures not primitive