2017-03-14 7 views
-1

のための具体的なシェープファイルを選択します、私はこれらのようなシェープファイルの様々なフォルダ持っ入力

  • 1965_120m.shpを
  • 1967_120m.shp、
  • 1968_120m.shp、
  • 1965_50m.shp 、
  • 1967_50m.shp、
  • 1968_50m.shp、
  • 1965_10m.shp、
  • 1967_10m.shp、
  • 1968_10m.shp

(フォルダ上のデータがはるかにあり、これは単なる一例である)ので、私は50メートルのすべてのシェープファイルを選択するための方法を見つけるために自分自身を苦労このフォルダから。

ご存知ですか?

+0

"50m"の場合はファイル名を選択しますか?これはどのようにする必要がありますか? choose.filesを使用したGUIの使用より多くの文脈を提供する必要があります。 – parvus

答えて

0

再現可能な例がなければ、完全なソリューションを提供することは困難になりますが、...

filenames <- list.files(path=".", pattern="50m.shp", ignore.case = TRUE, recursive = FALSE, include.dirs = FALSE) 

for(f in filenames){ 
#do stuff with each file (f) such as mySHP <- readOGR(... layer = file_path_sans_ext(f)) 
} 

あなたのファイルを取得し、...べきではと自分のものを行います各ファイルは順番に

0

これは私が探していたものですが、私が理解していないのはレイヤー上の入力です。ファイルパスはreadOGR関数の最初の入力と仮定します。これは自分のニーズに合わせたスクリプトで、ヘルプの詳細が表示されます。

input_folder<- "C:/Users/Data_Analysis/R data processing/points_rastervalue" 

output_folder<- "C:/Users/Data_Analysis/R data processing/output" 

setwd("C:/Users/Data_Analysis/R data processing/points_rastervalue") 

shps <- list.files(path=".", pattern="50m.shp", ignore.case = TRUE, recursive = FALSE, include.dirs = FALSE) 

for(shp in shps){ 
    mySHP <- readOGR('.', layer = ??) 
} 
+0

'mySHP < - readOGR( '。'、layer = file_path_sans_ext(shp))'は、作業ディレクトリをすでに設定しているので、それを行う必要があります。これがループであることを理解し、ループ内で出力の処理と保存を行う必要があります。それ以外の場合は、各ファイルを順番に開き、mySHPを上書きします。 –

+0

'mySHP < - readOGR( '。'、layer = file_path_sans_ext(shps [1]))'を使い、 'for(shp in shps){} 'の中にはいけません。 'ループ。 –

+0

出力を保存するには、ループ内のassign/sapply/lapplyのような関数を使用する必要がありますか? (私のさらなる目的は、選択したシェイプファイルをレンガを作るために使用することです) – Penelope

関連する問題