1

毎月毎日の netcdf ファイルを読み取り、それぞれに日付で終わる名前を付ける必要があります

library(raster)
year<-2004
startmonth<-1
for(monthd in 31){
    days<-formatC(monthd, width=2, flag="0")
    month<-formatC(startmonth,width=2,flag="0")
    sm=raster(paste(year,month,days,"1.nc",sep=""),varname="sm")
    monthd<monthd+1
}

最後に、 sm01 sm02 という名前のラスター目標が必要です。. . sm31

1月用。それを行う簡単な方法があるに違いありません。私はコーディングが非常に新鮮です。

4

2 に答える 2

0

まず、forループがオフになっています。1 つの値のみを反復処理します31。次のように変更する必要があります。

for (monthd in 1 : 31) { …

次に、文字列に基づいて変数を作成するには、次を使用しますassign

assign(paste('sm', monthd, sep = ''), someValue)

最後に、ループの最後の行を削除します。これは構文的に間違っており、修正しても何も達成されません。

ただし、assignここでは使用しないことを強くお勧めします。あなたが望むのは、多くの個々の変数ではなく、単にvectorが欲しいだけです。次のように簡単に作成できます。

sm <- vector(length = 31)
# or
sm <- 1 : 31
# or, same as previous
sm <- seq(1, 31)
# or
sm <- rep(someValue, 31)
于 2013-05-02T19:19:02.483 に答える