ポリゴン シェープファイル (ブラジルのアマゾンでの森林伐採) を森林伐採の年数で分割したいと思います。年は、「d2010_1」、「d2010_2」、「d2011_1」などの文字列フィールドにあります。5年ごとに分けたい。私は次のことを試しました:
d00a04 <- prodes[grepl("d2000",prodes@data$CLASS_NAME) ||
grepl("d2001",prodes@data$CLASS_NAME) ||
grepl("d2002",prodes@data$CLASS_NAME) ||
grepl("d2003",prodes@data$CLASS_NAME) ||
grepl("d2004",prodes@data$CLASS_NAME),]
しかし、次のエラーが発生しました:
Error in if (is.numeric(i) && i < 0) { :
missing value where TRUE/FALSE needed
私も試しました:
anos00a04 = c("d2000","d2001","d2002","d2003","d2004")
d00a04 <- subset(prodes,prodes@data$CLASS_NAME %in% anos00a04)
しかし、同じエラーメッセージが表示されました。here、here、hereのような例を見てきましたが、<、>、== などの数値演算子ではなく、文字列の先頭が一致するかどうかを確認する必要があります。何か助けてください。
編集: 方法を見つけましたが、奇妙なことが起こっています。私は次のことをしました:
anos <- sort(unique(prodes@data$CLASS_NAME))
anos00a04 <- anos[2:20]
最初のコマンドは、元のシェープファイルから 49 レベルすべてを取得します。2 番目は、2000 年から 2004 年の間のものだけを返します。しかし、2 番目の変数を表示するように依頼すると、19 個の itens (d2000_2 d2000_3 d2001_0 d2001_3 d2001_4...) が表示されますが、その下には、「49 レベル: d1997_0 d2000_2 d2000_3...」と表示されます。 (そしてリストから外れていました)。何が起こっていますか?
PS: 「anos」はポルトガル語で「年」を意味します。