R - 构建批处理//这很容易吗?

时间:2013-06-07 09:58:37

标签: r batch-file

我对编程很陌生,但我有一个问题。我想你可以很轻松地回答这个问题。

我有这段代码

    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")
    }

:)

1 个答案:

答案 0 :(得分:1)

这相对容易。一种想法是使用vector将文件名存储在列表中,并使用for-loop为矢量中的每个项目执行命令。

使用这些参考资料了解更多信息:

这是否足以让您入门?