我想peakutils在 R 中使用 Python 包。为此,我使用了该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(callable, dots$args, dots$keywords) 中的错误:
TypeError: 只有一个元素的整数数组可以转换为索引
它期望一个具有单个元素的数组,该元素是一个整数,但是——据我所知——这正是我要传递的,所以为什么我会收到这个错误?

