2017-11-24 1 views
1

名前に日付が含まれているラスターファイルのリストがあります。その名前または日付が日付リストと一致するラスターファイルのみを抽出したいと考えています。 どうすればいいですか! ここに私のコードを理解するためです!名前を別の名前リストと照合してラスターファイルを抽出します

files    <- list.files(full.names=T, pattern=paste0("_S2_B|L8_sr_")) 
rootName   <- substring(basename(files),1,7) 
date_raster   <- as.Date(rootName,'%Y%j') 

は、ここで私は、このような各ラスタファイルのその日付の名前がこれらの日付と一致

[1] "2013-04-15" "2013-04-15" "2013-04-15" "2013-04-15" "2013-04-15" "2013-04-15" "2013-04-24" "2013-04-24" "2013-04-24" "2013-04-24" 
[11] "2013-04-24" "2013-04-24" "2013-05-01" "2013-05-01" "2013-05-01" 

とIのみたく抽出ファイルを日付名を取得します!事前に

humid_date     <- raster_humid$date 


[1] "2014-05-13" "2014-07-23" "2014-09-02" "2014-09-18" "2015-01-31" "2015-09-12" "2015-09-21" "2015-12-10" "2015-12-28" "2016-01-14" "2016-04-13" 
[12] "2016-05-23" "2016-05-25" "2016-07-12" "2016-07-22" "2016-07-25" 

おかげで、

答えて

1

私が正しくあなたの問題を理解していれば、あなたがファイル名にすべての日付、選択したい日付のリストのリストを持っています。この場合、次のようにwhich(x %in% y)を使用できます。私はあなたのサンプルデータを再フォーマットするのが面倒だったので(申し訳ありません)、私は自分自身を作成し​​、あなたのものに似ていることを願っています。私はこれがあなたが探しているものであることを願っています。 (あなたがマッチングにcharacterにあなたのdateタイプを変換する必要がある場合があります)

files <- paste0(9:1, "file") 
dates_files <- substr(files, 1,1) 
select_dates <- as.character(c(1,3,5)) 

files[which(dates_files %in% select_dates)] 
#[1] "5file" "3file" "1file" 
+0

はあなたに@Manuelをありがとう!私が望んだようにそれは働いた! :) –

+0

うれしい私は助けることができます。おそらく 'list.files()'のファイルの選択をおそらく制限することができることに気付きました。各ファイル名に日付が1つしかない場合、 'list.files(...、pattern = paste(select_dates、collapse =" | "))'を試すことができます。それとも他の選択基準と衝突しますか? –

+0

その良いアイデア!しかし、選択を制限する別の基準がすでにあるので、少し複雑になると思います。そして、これらの日付で選択を再度制限しています! :) –

関連する問題