首页 > 解决方案 > 将声学索引应用于 R 中波对象列表的每个组件

问题描述

我希望将计算四个声学指数(H f、AEI、ACI 和 NDSI)的函数应用于 55 个 60 秒波对象的列表。我找到了将函数应用于 .wav 文件的代码,但是我很难更改代码以适用于列表的每个组件而不是 .wav 文件。

这是我试图计算的代码:

#create function to be applied to list of wave objects
indices <- function(x) {
  x <- readWave(x)
  return(c(sh(meanspec(x, plot=FALSE)),
           acoustic_evenness(x) $aei_left,
           ACI(x),
           NDSI(soundscapespec(x, plot=FALSE))
           )
         )
}

# create data frame for indices to be recorded
n <- length(hodsubsamps0820_000000)
num <- rep (NA, n)
res <- data.frame(Hf=num, AEI=num, ACI=num, NDSI=num)

#use function on each list component
for (i in 1:n) res[i,] <- indices(hodsubsamps0820_000000[i])

使用此错误代码:

Error in readWave(x) : 'filename' must be of type character. 

标签: rwavacoustics

解决方案


推荐阅读