【发布时间】:2020-06-19 14:29:21
【问题描述】:
我创建了以下简单函数:
fillampenv <- function(samples, samprate, rise, fall){
# Create output vector
v <- vector("numeric", samples)
# Fill output vector
v <- c(seq(0, 1, length = rise * samprate),
seq(1, 1, length = (((samples/samprate) -
(rise + fall)) * samprate) -1),
seq(1, 0, length = fall * samprate))
return(v)
}
我想对数据框的每一行调用:
df <- structure(list(samples = c(17640, 17640, 17640, 17640, 17640), samprate = c(44100, 44100, 44100, 44100, 44100), rise = c(0.75, 0.75, 0.75, 0.75, 0.75), fall = c(0.3, 0.3, 0.3, 0.3, 0.3)), class = "data.frame", row.names = c(NA, -5L))
但是,当我尝试使用以下方法执行此操作时(这适用于我制作的其他功能):
ampenvs <- mapply(fillampenv,
samples = df$samples,
samprate = df$samprate,
rise = df$rise,
fall = df$fall)
我得到错误:
Error in seq.default(1, 1, length = (((samples/samprate) - (rise + fall)) * :
'length.out' must be a non-negative number
任何想法为什么?我正在努力弄清楚为什么它不能特别适用于这个功能(而其他人工作得很好)。
【问题讨论】: