Замените 9 на NA, а затем используйте pmax, как было предложено @MrFlick в его удаленном ответе:
9
NA
pmax
df2 <- df #copy df because we are going to change it df2[df2==9] <- NA do.call(function(...) pmax(..., na.rm=TRUE), df2) #[1] 5 6 7