Ошибка TypeError при использовании пакета reticulate для вызова функции из пакета Python peakutils - PullRequest
0 голосов
/ 24 сентября 2019

Я хочу использовать пакет 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)

enter image description here

Это замечательно и работает, как и ожидалось.Скажем, я хочу изменить параметр 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: в индекс могут быть преобразованы только целочисленные массивы с одним элементом

Ожидается массив с единственным элементом, который является целым числом, но - насколько я вижу - это точно что я передаю, так почему я получаю эту ошибку?

...