2016-04-13 12 views
-1

私はこのコードでの日付/時間のシーケンスを生成しようとしているの倍数ではありませんが、私はエラー 数は、交換用の長

「エラーall_datesで[サイクル

を得続けます、 1] < - ペースト(c_dates [A]、 " - "、c_hours [B]、 "H"):使用交換するアイテムの数が交換 長さの倍数でない」

コードでありますこれは:

years <- c(2009, 2010, 2011, 2012, 2013) #1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006) 
    months <- c(6, 7, 8, 9) 


for (i in years) 
{ 

     upper.bound<- paste("01", months[1], i, sep="-") 
     lower.bound <- paste("30", months[4], i, sep="-") 

     c_dates <- seq(as.Date(upper.bound, "%d-%m-%Y"), as.Date(lower.bound, "%d-%m-%Y"), "days") 
     c_hours <- c(0, seq(0:22)) 

     len <- dim(as.matrix(c_dates))[1]*dim(as.matrix(c_hours))[1] 

     all_dates <- data.frame() 
     all_dates <- seq(0,0,length.out=len) 

     dim(all_dates) <- c(dim(as.matrix(c_dates))[1]*dim(as.matrix(c_hours))[1], 1) 

     cycle <- 1 

     for(a in c_dates) 
     { 
     for(b in c_hours) 
     { 
      all_dates[cycle, 1] <- paste(c_dates[a], "-", c_hours[b], "h") 
      cycle <- cycle + 1 
     } 
     } 
} 

何が間違っているのでしょうか?

+1

'months'は何ですか?そして「私」。あなたのコードは最初の行で失敗します。 – Spacedman

+0

また、 'all_dates'の値は何ですか? –

+0

申し訳ありませんが、数行のコードを忘れてしまいました。関連するものはすべてここにあります:) –

答えて

1

forループにあなたのベクトルの項目をサブセットします。

all_dates[cycle, 1] <- paste(a, "-", b, "h") 

かであるためにあなたのループを変更することにより、

all_dates[cycle, 1] <- paste(c_dates[a], "-", c_hours[b], "h") 

を交換してください:

for(a in 1:length(c_dates)){ 
for(b in 1:length(c_hours)){