Я хочу использовать пакет Python peakutils
изнутри R. Для этого я использую пакет reticulate
.Вот пример того, что я хотел бы сделать.
# Load packages
library(data.table)
library(reticulate)
# Set RNG
set.seed(-1)
# Synthetic data function
foo <- function(x) sin(x) * sqrt(x) + rnorm(length(x), 0, 0.1)
# Create data
dt <- data.table(x = seq(0, 10, by = 0.1))
dt$y <- foo(dt$x)
# Import Python library
pu <- import("peakutils")
# Indices pf peaks
ind <- pu$indexes(dt$y, thres = 0.7)
# Have a look at data
plot(dt)
points(dt[ind], col = "red", pch = 19)
Это замечательно и работает, как и ожидалось.Скажем, я хочу изменить параметр min_dist
, который согласно документации является целым числом.Я передаю min_dist = 3L
, вот так:
# Indices pf peaks now with a larger minimum distance
ind <- pu$indexes(dt$y, thres = 0.7, min_dist = 3L)
и получаю следующую ошибку:
Ошибка в py_call_impl (вызываемый, точки $ args, точки $ ключевые слова):
TypeError: в индекс могут быть преобразованы только целочисленные массивы с одним элементом
Ожидается массив с единственным элементом, который является целым числом, но - насколько я вижу - это точно что я передаю, так почему я получаю эту ошибку?