замена значений NA с конкретным усреднением - PullRequest
0 голосов
/ 05 мая 2019

у меня есть data.frame со столбцами и строками.Как я могу заменить значения NA, чтобы это было среднее от первого значения до и после этой ячейки в этом столбце?

например:

 1. 1 2  3 
 2. 4 NA 7
 3. 9 NA 8 
 4. 1 5  6

Мне нужно, чтобы первый NA был - (5+2)/2=3.5, а второй - be (3.5+5)/2=4.25

1 Ответ

1 голос
/ 05 мая 2019

Позволяет создать некоторые образцы данных и преобразовать их в data.table:

require(data.table)
require(zoo)
dat <- data.frame(a = c(1, 2, NA, 4)) 
setDT(dat)

Теперь, используя функцию zoo::na.approx, мы можем вычислить пропущенные значения.

dat[, newA:= na.approx(a, rule = 2)]

Выход:

   a newA
1:  1    1
2:  2    2
3: NA    3
4:  4    4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...