Как обойти ошибку, когда одна точка данных указана для приблиз., Но xout равен x? - PullRequest
0 голосов
/ 04 декабря 2018

Я делаю групповое изменение, включающее интерполяцию, аналогично вопросам, поставленным в:

  1. Как мне использовать приблизительно () внутри mutate_at () с условным выражением в dplyr?
  2. линейная интерполяция с dplyr, но пропускаем группы со всеми пропущенными значениями

Я понимаю концепцию из двух приведенных выше вопросов, что если вы хотите интерполированное значениена xout, тогда вам нужно как минимум две точки, окружающие xout.Однако, как представляется, существует ограничение для случая, когда значение аргумента xout равно значению аргумента x, переданного в approx, например:

approx(3, 4, 3)$y
# need at least two non-NA values to interpolate

В этом случаежелаемым выходом является входное значение y, то есть 4.Мне интересно, как лучше обойти это.Должен ли я вставить фиктивные значения x, чтобы вызвать желаемое поведение, например:

> approx(c(runif(1), 3), c(runif(1), 4), 3, rule = 2)$y
[1] 4

или другой вариант - обернуть approx другой функцией и использовать аргумент ties = 'ordered':

approx2 <- function(x, y, xout, ...) {
    approx(c(x, x), c(y, y), xout, ties = "ordered")
}

> approx2(3, 4, 3, rule = 2)$y
[1] 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...