Как вычислить среднее значение ненулевых элементов каждой строки в кадре данных в r - PullRequest
0 голосов
/ 27 февраля 2019

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

data=data.frame(x1=c(8,0,9),x2=c(0,0,10),x3=c(16,10,2))
data
x1  x2  x3
8   0   16
0   0   10
9   10  2

Желаемый результат будет

mean
12
10
 7

Спасибо.

Не: получение значения столбца для ненулевых данных

Я пытался, но это не работает, поскольку при преобразовании в значение NA среднее значение будет равно NA.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

вот простое решение:

apply(data,1,function(x) mean(x[x!=0]))
0 голосов
/ 27 февраля 2019

Мы replace '0' с NA и используем параметр na.rm из rowMeans

rowMeans(replace(data, data == 0, NA), na.rm = TRUE)
#[1] 12 10  7
...