C ++: Вы выберете библиотеку boost :: date_time или icu :: date / time?

Я не думаю, что для этого есть готовая функция, но вы можете легко создать ее. Например:

Функция для получения «соседей» (имя немного вводит в заблуждение, но функция работает):

get.neighbourgs <- function(vector, x) {
diff <- vector-x
if (any(diff==0)) {
    return(which(diff==0))
    } else {
        lower <- tail(which(diff<0), 1)
        return((lower-1):lower)
    }
}

Он вернет точный идентификатор, если a значение найдено в vector, иначе он вернет два «идентификатора» (до этого два меньших значения). Это требует, чтобы ваши данные были заказаны! Если нет, вам нужно немного подкорректировать его. Примеры использования:

> get.neighbourgs(lkp$x,1.3)
[1] 5
> get.neighbourgs(lkp$x,2)
[1] 5 6

Используя эту функцию, можно построить простую функцию, чтобы получить среднее значение требуемых значений y, например:

get.y <- function(df, x) {
    mean(df$y[get.neighbourgs(df$x, x)])
}

Примеры:

> get.y(lkp, 1.2)
[1] 0.971
> get.y(lkp, 2)
[1] 0.931

Надеюсь, что это поможет.

11
задан Daniel Heilper 1 August 2017 в 12:20
поделиться