2016-10-12 7 views
0

forループを使用して読み込み、クリップ、名前の変更、および書き出しを行うオーディオ録音のリストがあります。私はクリップを無作為化されたブラインドスタディで使用できるように、関連する「マスター」テーブルから乱数を使用してクリップの名前を変更しようとしています。forループの名前をRでリストを使用して出力する

コードの下に、以下のトリプルチルダ(~~~)間のコードの代わりにsample(100:999,1)と希望(実行されませんが、うまくいけば望ましい結果を示した)が、重複clipIDsを得るための小さなチャンスがあるとして動作します。各ループ反復の出力に対応するIDの名前を付けるにはどうすればよいですか?

recording_list <- recording_summary$Original_filename # chr [1:100] 
clipID_list <- recording_summary$ClipID # int [1:100] 

for (i in c(recording_list)){ 
    wavIN <- readWave(i, from=120, to=301, units="seconds") 
    writeWave(wavIN, paste0(~~~i in c(clipID_list)~~~, ".wav")) 
    rm(wavIN) 
} 

答えて

0

私は複数の変数に沿って移動しているときに、代わりにインデックス(または名前)を使用する傾向があります。これはあなたのために働く必要があります。

recording_list <- recording_summary$Original_filename # chr [1:100] 
clipID_list <- recording_summary$ClipID # int [1:100] 

for (idx in 1:length(recording_list)){ 
    wavIN <- readWave(recording_list[idx], from=120, to=301, units="seconds") 
    writeWave(wavIN, paste0(clipID_list[idx], ".wav")) 
    rm(wavIN) 
} 
0

各反復

# Generate a list of 100 unique random integers between 100 and 999 
name_list = sample(100:999, 100) 

# Largely the same code from your post 
for (i in seq_along(recording_list)) { 
    wavIN <- readWave(recording_list[i], from=120, to=301, units="seconds") 
    writeWave(wavIN, paste0(name_list[i], ".wav")) 
    rm(wavIN) 
} 

# Write list of file name and recording_list pairs for safe keeping. 
cbind(recording_list, name_list) 
+0

のためのID /名前のリストを事前に移入このソリューション-Iのためのおかげであるため、インデックスのアプローチに関する有用な情報の他の回答を選びましたしかしこれもうまくいきました。 – JMDR

関連する問題