Как применить na.approx к строке в матрице? - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь сделать интерполяцию для всех строк в кадре данных.Я использую apply(data_final,2,na.approx).Это делает интерполяцию для значений, но некоторые находятся вне диапазона.

Если я использую na.approx(data_final[8,]) вместо этого, я получаю другое значение в этой строке по сравнению со строкой, используя apply.

Кроме того, если я сделаю na.approx(data_final), я получу тот же результат, что и apply(data_final,2,na.approx).Это не имеет никакого смысла, так как предположительно применяется применение na.approx функция к каждой строке во фрейме данных.

apply (data_final, 2, na.approx) [8,] 0,63 0,49 2,402,65 3,65,80 0,96 1,85 1,43 1,25 1,21 1,20 0,91 1,850 1,430 1,250 1,20 1,20 1,20 1,20 1,20 1,20 1,20 1,20 1,20 0,96 0,90 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,90 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0,80 0 от 0 от 0 до 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 0 0 0 0 600,800 1,420 1,820 1,910 1,780 1,620 [22] 1,650 1,380 1,370

1 Ответ

0 голосов
/ 13 апреля 2019

Поскольку na.approx выполняет вычисления по столбцам, а не по строкам.Согласно ?na.approx (из zoo), используется значение

na.approx (объект, ...)

, а описание параметра -

Если obj имеет более одного столбца, вышеуказанная стратегия применяется к каждому столбцу.


Использование воспроизводимого примера

library(zoo)
df1 <- data.frame(col1 = c(2, NA, 3, 4), col2 = c(1, 3, NA, 2))
na.approx(df1)
#     col1 col2
#[1,]  2.0  1.0
#[2,]  2.5  3.0
#[3,]  3.0  2.5
#[4,]  4.0  2.0

по столбцамприменяя na.approx

sapply(df1, na.approx)
#     col1 col2
#[1,]  2.0  1.0
#[2,]  2.5  3.0
#[3,]  3.0  2.5
#[4,]  4.0  2.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...