我对编程很陌生,但我有一个问题。我想你可以很轻松地回答这个问题。
我有这段代码
library(seewave)
library(tuneR)
date<-"WAHNHEIDE_20120711_"
clockings<-scan("testfile.txt", what="")
date.clock<-paste(date,clockings,sep="")
wave<-readWave("mywav.wav")
waveenv<-env(wave, f=48000, envt="hil", plot=FALSE)
thvalue<-th(waveenv)
wavespec<-meanspec(wave, f=48000, wl=1024, wn="hanning", plot=FALSE)
shvalue<-sh(wavespec)
index<-thvalue*shvalue
combine<-c(shvalue, thvalue, index)
write(combine, file="test.txt", append=TRUE, sep="\t")
我构建了一个包含许多文件名(* .wav)的字符串,我想分析。我可以在“readWave()”部分插入我生成的所有文件名吗?这样我运行脚本并为date.clock中生成的所有文件计算值sh和th?这很容易编码吗?
感谢您的帮助! 干杯 托比
好吧,我认为这是最简单的方法,因为我只是在阅读wav文件。
library(seewave)
library(tuneR)
files<-list.files(pattern=".wav")
for (i in 1:length(files)) {
wave<-readWave(files[i])
waveenv<-env(wave, f=48000, envt="hil", plot=FALSE)
thvalue<-th(waveenv)
wavespec<-meanspec(wave, f=48000, wl=1024, wn="hanning", plot=FALSE)
shvalue<-sh(wavespec)
index<-thvalue*shvalue
combine<-c(shvalue, thvalue, index)
write(combine, file="test.txt", append=TRUE, sep="\t")
}
:)
答案 0 :(得分:1)
这相对容易。一种想法是使用vector
将文件名存储在列表中,并使用for-loop
为矢量中的每个项目执行命令。
使用这些参考资料了解更多信息:
这是否足以让您入门?