1

次のようなifを含む関数を使用して、マトリックスでmapplyを使用したい:

dim_rf <- 10

rf <- matrix(runif(dim_rf*dim_rf),ncol=dim_rf)


fire_rf <- function(i,j) {
  if(rf[i,j+1] + rf[i+1,j] + rf[i,j-1] + rf[i-1,j]>1)
    rf[i,j] <-2
}

mapply(fire_rf, row(rf), col(rf)  ) 

しかし、それはエラーを与えます

Error en if (rf[i, j + 1] + rf[i + 1, j] + rf[i, j - 1] + rf[i - 1, j] >  : 

引数の長さがゼロです

関数を変更して機能させるにはどうすればよいですか?

これを使用して火の浸透の単純なモデルを実行しているので、行列のサイズが 100 または 1000 に大きくなる必要があるため、高速である必要があります。

4

2 に答える 2