if
оператор не векторизован. Для векторизованных операторов if вы должны использовать ifelse
. В вашем случае достаточно написать
w <- function(a){
if (any(a>0)){
a/sum(a)
}
else 1
}
или короткую векторную версию
ifelse(a > 0, a/sum(a), 1)
. Это зависит от того, что вы хотите использовать, потому что первая функция дает выходной вектор длина 1 (в остальной части) и ifelse
дает выходной вектор длины, равный длине a
.
Является ли GET /eltrack-*cps*/_stats/store
(возможно, с добавленным ?human
) недостаточно хорошим? Не уверен, что вы можете отфильтровать только одно конкретное поле, но соответствующая информация находится в этом запросе (плюс дополнительные данные для других размеров).