私は、このような...どのようにグループの経度と緯度データ
lat=runif(1000, min = 22.1, max = 22.8)
lon=runif(1000, min = 120, max = 120.6)
latlon=cbind(lat,lon)
として緯度と経度のデータを持っていると私はこれに基づいて、異なるゾーンにそれらを分類したい...
Zone=c("A","B","C","C","C","D","E","E","E")
North=c(23,23,22.83,22.67,22.42,22.33,22.33,22.42,22.50)
South=c(22.67,22.67,22.67,22.33,22.33,22.08,22.08,22.33,22.42)
East=c(120,120.2,120.2,120.3,120.4,120.5,120.7,120.6,120.5)
West=c(119.7,120,120.2,120,120.3,120.2,120.5,120.4,120.3)
data.frame(cbind(Zone,North,South,East,West))
することができます
私は5つの異なるゾーン(A、B、C、D、E) にlatlon
私のGISデータを分離したいと私はbefor ifelse
を使用しようとしましたe、それほど効率的ではないようです
とにかく私はもっと早く仕上げることができますか?
===================== 私はエイドリアン・マーティンの提案
newzone=case_when(lat >= zzz$South[1] & lat <= zzz$North[1] & lon <= zzz$East[1] & lon >= zzz$West[1]~ zzz$Zone[1],
lat >= zzz$South[2] & lat <= zzz$North[2] & lon <= zzz$East[2] & lon >= zzz$West[2]~ zzz$Zone[2],
lat >= zzz$South[3] & lat <= zzz$North[3] & lon <= zzz$East[3] & lon >= zzz$West[3]~ zzz$Zone[3],
lat >= zzz$South[4] & lat <= zzz$North[4] & lon <= zzz$East[4] & lon >= zzz$West[4]~ zzz$Zone[4],
lat >= zzz$South[5] & lat <= zzz$North[5] & lon <= zzz$East[5] & lon >= zzz$West[5]~ zzz$Zone[5],
lat >= zzz$South[6] & lat <= zzz$North[6] & lon <= zzz$East[6] & lon >= zzz$West[6]~ zzz$Zone[6],
lat >= zzz$South[7] & lat <= zzz$North[7] & lon <= zzz$East[7] & lon >= zzz$West[7]~ zzz$Zone[7],
lat >= zzz$South[8] & lat <= zzz$North[8] & lon <= zzz$East[8] & lon >= zzz$West[8]~ zzz$Zone[8],
lat >= zzz$South[9] & lat <= zzz$North[9] & lon <= zzz$East[9] & lon >= zzz$West[9]~ zzz$Zone[9])
に基づいて、新たなコードを書くには、私が作ることができとにかくがありますコードはもっとシンプル?ありがとう
データの再現可能なサンプルを投稿できますか? –
開発したコードを入力してください。これは、他の人がコードを改善するのを容易にします。 – www
コードの画像を投稿しないでください。データを直接投稿することは困難ではありません。回答者にとってより簡単にするための方法のいくつかの良い例が見つかりました[ここ](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 – r2evans