Даже если это вопрос 7 лет, новичкам в R следует рассмотреть возможность использования пакета data.table .
data.table - это data.frame, поэтому все, что вы можете сделать для / для data.frame, вы также можете сделать. Но многие думают, что НАПРАВЛЕНИЯ величины быстрее с data.table.
vec <- 1:10
library(data.table)
DT <- data.table(start=c(1,3,5,7), end=c(2,6,7,9))
DT[,new:=apply(DT,1,function(row) mean(vec[ row[1] : row[2] ] ))]