Вы можете использовать print df.describe().to_string()
, чтобы заставить его отобразить всю таблицу. (Вы можете использовать to_string()
, как это для любого DataFrame. Результат describe
- это только сам DataFrame.)
8 - это количество строк в DataFrame, содержащее «описание» (потому что describe
вычисляет 8 статистических данных, min, max, mean и т. д.).
Да, это называется approx
.
> with(lkp, approx(x, y, xout=c(0.2, 2)))
$x
[1] 0.2 2.0
$y
[1] 1.0000000 0.9123404
Для получения дополнительной информации см. ?approx
.
Я не думаю, что для этого есть готовая функция, но вы можете легко создать ее. Например:
Функция для получения «соседей» (имя немного вводит в заблуждение, но функция работает):
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
Надеюсь, что это поможет.