Мы можем использовать
sum((tmax_mean - 32)[tmax_mean > 32])
# [1] 3.8
Здесь tmax_mean > 32
помогает установить необходимые термины, в то время как tmax_mean - 32
в этих случаях являются нашими слагаемыми.
Кроме того,
sum((tmax_mean - 32) * (tmax_mean > 32))
# [1] 3.8
, используя ту же логику и тот факт, что number * TRUE
равен number
, а number * FALSE
равен 0
:
3 * TRUE
# [1] 3
3 * FALSE
# [1] 0
Таким же образом, используя умножение матриц %*%
(поскольку и tmax_mean - 32
, и tmax_mean > 32
можно рассматривать как векторы),
(tmax_mean - 32) %*% (tmax_mean > 32)
# [,1]
# [1,] 3.8
, который теперь является матрицей 1x1,что может или не может быть приемлемым в вашем случае.