Вы можете использовать, например, cut
, например:
matr$binnedpe<-cut(matr$pe, breaks=10)
matr$binnedvix<-cut(matr$vix, breaks=10)
Далее вы можете использовать, например, ddply
(из пакета plyr
), чтобы получить средства на корзину:
binneddata<-ddply(matr, .(binnedpe, binnedvix), function(d){c(d$binnendpe, d$binnedvix, mean(d$ret))})
Наконец, вы используете этот последний data.frame для построения вашей тепловой карты.Я не проверял ничего из вышеперечисленного, но оно должно быть достаточно близко, чтобы вы могли начать работу.