Как вычислить среднее значение некоторых элементов из вектора в R?

#r

#r

Вопрос:

X<-c(-95, 67, -92, 65, 20, 25, -28, 55, 53, -77)

Это мой вектор, я хотел бы получить среднее значение положительных чисел, а затем получить среднее значение, если отрицательные числа.

Как я мог это сделать? Я везде искал, и ничего не появляется.

Спасибо.

Ответ №1:

Попробуйте это:

 # Mean of positive numbers
mean(X[X > 0])
# Mean of negative numbers
mean(X[X < 0])
  

Ответ №2:

Вы можете использовать «which», поскольку он не будет учитывать какие-либо значения NA

Среднее из положительных чисел:

 mean(X[which(X>=0)])
[1] 47.5
  

Среднее значение отрицательных чисел:

 mean(X[which(X<0)])
[1] -73
  

Ответ №3:

Вы можете использовать tapply :

 tapply(X, X > 0, mean)

#FALSE  TRUE 
#-73.0  47.5 
  

Если вы хотите присвоить значениям правильные имена меток.

 tapply(X, ifelse(X > 0, 'positive', 'negative'), mean)

#negative positive 
#   -73.0     47.5