地域(アメリカ)内のポリゴンあたりの種の数を調べ、この結果を数値of columnsはアメリカの種の総数であり、行数はその領域内のポリゴンの総数です。置き換えられるアイテムの数は置換の長さの倍数ではありません " - ループのゾーン関数
この場合、結果が格納される空の行列を最初に作成し、この例では「SDM.b」と呼ばれるRasterBrickファイル内のすべてのレイヤー(202)を通してループを作成しようとしています(各レイヤー=分布種(x))を計算し、関心領域を分割したポリゴンを格納するラスタ「regionRas」のゾーン統計を計算します。これらのポリゴンはラスタ "regionRas"の "Distritos"と呼ばれ、ラスタ "regionRas" please see this pic for info about those rastersに "CODIGO"というユニークなコードがあります。
これは私が持っているコードです:
library(maptools)
library(sp)
library(geosphere)
library(raster)
#this is the empty matrix
SpeciesRegions <- matrix(NA, nrow=87, ncol=nlayers(SDM.b))
#here I am trying to fill that matrix
for(i in 1:nlayers(SDM.b))
{
SpeciesRegions[,i] <- zonal(clipped.spp.diversity.mask, regionsRas,fun='sum',digits=0, na.rm=TRUE)[,1]
}
#convert the matrix data to logical (true/false) data
SpeciesRegions <- SpeciesRegions > 0
意図した出力は次のようなものになります。
species 1 species 2 species 3
polygon 1 FALSE TRUE TRUE
polygon 2 TRUE FALSE FALSE
polygon 3 FALSE TRUE TRUE
をしかし、これは私がループに
“Error in SpeciesRegions[, i] <- zonal(clipped.spp.diversity.mask, regionsRas, :
number of items to replace is not a multiple of replacement length”
を取得していますエラーです
私は助けていただければ幸いです...
リンクありがとうございます。私は私の質問を編集して、それがうまくいくかどうかを確認しました。私は残念ながら、データを追加することはできません、私のすべての入力はかなり大きいラスターファイルです。 –
改善をいただきありがとうございます。あなたはまだデータを追加することができます。これを行う方法は、組み込みのデータ、安定した評判の良いWebサイトから簡単にオンラインでダウンロードしたデータファイル、またはコード内で生成されたデータを使用することです。私は以下の答えでそうしました。乾杯。 –
ありがとうございました!!!あなたの応答は、再現可能なデータを作成する方法の非常に明確な例です。 –