-1

PC 軸を使用した補間マップの作成について質問があります。パッケージを使用してmapsakimaマップと補間を描画しました。これが私のコードです:

map<-read.table("RACES_GEOREF.txt", row.names=1)
x<-as.numeric(map[,1])
y<-as.numeric(map[,2])
z<-as.numeric(bca.res$li[,1])
x0<-seq(min(map[,1]), max(map[,1]), le=500)
y0<-seq(min(map[,2]), max(map[,2]),le=500)
z.hat<-interp(x, y, z, xo=x0, yo=y0, linear=FALSE, extrap=TRUE)
myGrid<-expand.grid(x0,y0)
temp<-map.where(database="world", x=myGrid[,1], y=myGrid[,2])
toKeep<-grep("France",temp, ignore.case=TRUE)
toRemove<-setdiff(1:length(z.hat$z), toKeep)
z.hat$z[toRemove]<-NA
image(z.hat)
map(add=TRUE, lwd=3)
contour(temp, add=TRUE)
dev.off()

そのgrep部分では、フランス、ドイツ、イギリス、スウェーデン、イタリア、モロッコについては補間したいのですが、フランスの補間マップしかプロットできません。これらの国をフランスに追加するにはどうすればよいですか?

4

2 に答える 2

1

正規表現で OR 演算子を使用してみることができます。

toKeep<-grep("France|Germany|UK|Sweden|Italy|Morocco", temp, ignore.case=TRUE)

これが正しければ、問題は補間プロセスではなく、名前付き領域の選択に関するものであるように見えるため、質問のタイトルを変更する必要があります。

于 2013-01-16T17:59:04.863 に答える
0

I belive that with grep you will need to do something like this:

toKeep<-c(grep("France",temp, ignore.case=TRUE),grep("Germany",temp, ignore.case=TRUE),grep("UK",temp, ignore.case=TRUE),grep("Sweden",temp, ignore.case=TRUE),grep("Italy",temp, ignore.case=TRUE),grep("Morocco",temp, ignore.case=TRUE))

because grep just return the position in the vector where the name matches.

于 2013-01-16T17:37:18.360 に答える