R Новичок ... вычисление средних - PullRequest
0 голосов
/ 19 ноября 2018

Я очень плохо знаком с R, и я все еще довольно близко к основанию очень крутой кривой обучения, я думаю.Итак ...

У меня есть фрейм данных (импортированный из файла .csv).Содержит несколько полей - назовем их Field1, Field2, Field3 ... Поле 10.

Поля числовые.Для каждой строки данных я бы хотел посчитать среднее из 3 самых низких (скажем) чисел.Другими словами:

((наименьшее число) + (второе наименьшее число) + (третье наименьшее число)) / 3

Также есть некоторые NA в данных, поэтому я хотел бы, чтобывычисление для возврата NA, если на самом деле нет трех чисел для усреднения (хотя, возможно, R все равно будет делать это естественным образом).

Существует ли краткий способ сделать это в R и (еще лучше) сохранитьрезультат как новое поле в существующем фрейме данных?

Благодарен за любые советы.Благодарю.A

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Для каждой строки данных я бы хотел посчитать среднее из самых младших 3 (скажем) чисел.

Я думаю, что это должно достичь того, что вы просите:

data <- mtcars
data$low.mean <- apply(data, 1, function(x) mean(head(sort(x[!is.na(x)]), n = 3)))
0 голосов
/ 19 ноября 2018
 data(mtcars) 

 avg3 <- sapply(mtcars, function(x) mean(head(sort(x[!is.na(x)]), 3))) 

 avg3

 mtcars.avg3 <- rbind(mtcars, avg3) 

 mtcars.avg3
...