問題タブ [sp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - sp パッケージのリアクティブ出力の呼び出し
式でパッケージを使用して多角形 ( myBounds
)を作成します。sp
reactive()
パッケージの関数のobserve
関数でこのポリゴンを使用しようとしています。over()
sp
ポリゴンごとにいくつのポイントがあるか知りたいです。Myも式point object
に由来し、reactive
私の観察で少し処理されます。
だから私が持っているのobserve
はこれだけです:
ただし、これにより次のエラーが発生します。
警告: オブザーバーで未処理のエラー: シグネチャ '"reactive"、"character" の関数 'over' の継承されたメソッドが見つかりません
sp
ライブラリがreactive
コンテンツで機能しないことはありますか? !
r - sp に CRS を追加すると一貫性がないように思われる
でパッケージのover()
機能を使いたい。sp
R
を割り当てますCRS
。
そしてすべてが良さそうです。
CRS
のを確認してみましょうallPoints
。
したがって、over()
今関数を実行すると
エラーが発生します:
同一のCRS(x, y)はTRUEではありません
ここで何が問題なのかはわかっていると思いますが、解決方法がわかりません。
よく見ると、allPoints
さらにいくつかの単語があります-つまり+init=epsg:3857
. ここで、スロット内の文字列が同一であるかどうかを単純に比較することを読みました。ご覧のとおり、それらは同じです (Spatial リファレンスのクレアチンはまったく同じです) が、文字列は作成方法が原因でわずかに異なります。sp package
CRS
CRS
私が使うとき
それは私にallPoints
これを返します:
proj4string<-
( 、値 = )内の警告*tmp*
: 新しい CRS が既存の CRS を持つオブジェクトに割り当てられました: +init=epsg:3857 +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0= 0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs 再投影なし。再投影には、パッケージ rgdal の関数 spTransform を使用します
関数はover()
機能しますが、返されるものは意味がありません。
この問題にどう立ち向かう!?
r - 無効な `.internal.selfref` 警告、`SpatialPolygonsDataFrame` で動作する列が更新されない
プロット中に色付けなどのためにR
属性を s に追加することを含む、いくつかの地理空間分析を実行しようとしています。SpatialPolygonsDataFrame
整理のために、マージと更新によってこれらの属性を自分の に追加したいのですSpatialPolygonsDataFrame
が、「無効.internal.selfref
」という警告が表示され続け、列が追加されません。
ここでの質問と回答をいじってみると、SpatialPolygonsDataFrame
オブジェクトのデータが に格納されていることに関連しているようですが、一般的にユーザー定義のlist
を扱っていたため、これに対処する方法については回答がありませんでしたlist
ここのようなパッケージから出てくるものの代わりに。
これは、ばかげたシェープファイルを使用した簡単な例です。たとえば、米国の州です(以下の 500k 解像度を使用していることに注意してください)。
警告メッセージ: In
`[.data.table`(us.states@data, , `:=`(test, 1L))
: Invalid.internal.selfref
detected and fix by a (shallow) copy of であるdata.table
ため、:=
参照によってこの新しい列を追加できます。以前の時点で、これdata.table
はによってコピーされました(または、または類似のR
方法を使用して手動で作成されました)。をstructure()
避けkey<-
、 現在(names<-
そして奇妙なことに)全体をコピーする可能性があります 。コピーを避けるために、代わりに構文を使用してください: 、 および. また、 では、 and (は名前付きオブジェクトのコピーに使用されます)全体をコピーしました。にアップグレードしてくださいattr<-
R
data.table
set*
?set
?setnames
?setattr
R<=v3.0.2
list(DT1,DT2)
DT1
DT2
R
list()
R>v3.0.2
それが噛む場合。このメッセージが解決しない場合は、根本原因を修正できるように datatable-help に報告してください。
この種のジャイブは、他の関連する回答から収集したものですが、少なくともデータが更新されることを期待していましたが、残念ながら:
(または同様の取得されたオブジェクト)を操作:=
するために参照構文による快適な更新を引き続き使用できる方法はありますか?SpatialPolygonsDataFrame
.shp
今のところ、コピーによる更新を使用しています。これは機能します。
r - 人口加重多角形の歪み (カートグラム)
基になるジオメトリの形状 (つまり、物理的な境界)と、関連付けられた値に関するオブジェクトの相対的な重要性の両方を伝えるマップを R で作成しようとしています。
具体的には、次のマップ (のバージョン) を再現することに焦点を当てたいと思います* (ポーリング データが見つからないため、色ではなく形):
また、アラスカとハワイが、測地学的に正しい位置ではなく、米国の下に表示されるようにすることにも煩わされたくありません。
たとえば、次のように、データを重みとマージするだけです。
1.ポリゴンを取得する
2. 選挙人団のデータを追加する
これはまったく問題ありません。このマップを一目見ただけで、選挙人団での代表者数が多い州と少ない州がわかります。しかし、(ターゲット マップのように) 別の変数を州の色で表現したい場合はどうなるでしょうか?
3. 2012 年の選挙結果を追加
この最後のグラフは、問題の核心を突いています。提示された最初のグラフは、マップの赤と青の割合から共和党と民主党のどちらが勝ったかを判断できるという意味ではるかに優れています。最も共和党の州は人口が最も少ない州でもあるため、この最後のマップは誤解を招く可能性があります。
選挙人団における各州の相対的な重要性を伝える、この地図の歪んだバージョンを作成する方法はありますか? おそらく主に、このタイプのグラフに標準的な名前があるかどうかわからないため、オンラインでヘルプを見つけることができませんでした。
*この地図はここで見つかりました; エコノミストなどで、以前に同様のサイズの歪んだマップを見たことがあります。プリンストンの選挙コンソーシアムのサム・ワン博士の作品に基づいており、ドリュー・セイラーによって制作されたようです。
r - spplot へのテキストの追加 [R]
R でいくつかのデータを使用して空間補間を実行し、マップの作成に行き詰まりました。そのためにはspplotを使用する必要があります。そこからコードサンプルをテストすると:
すべてが意図したとおりに機能します。これをデータセットに適用すると、エラーが発生します
これは私のコードがどのように見えるかです:
この問題を解決する方法はありますか? 私のデータは、splot のドキュメントに記載されている例とほぼ同じに見えます。ヒントをありがとう!
r - SpatialPointsDataframe の作成
df1
10列のデータフレームがあります。これらの列のうちの 2 つはlng
とlat
です。SpatialPointsDataframe
fromを作成したいdf1
。SpatialPointsDataframeの作成方法を読むとm1
、2 つの座標列からマトリックスを作成し、そのマトリックスをデータフレーム 'df1' に割り当てる必要があるように感じます。
私の座標はすでに私のデータフレームの列であるため、それは回り道になりますdf1
。さらに、マトリックスの座標がm1
データフレームの正しい行に割り当てられていることを確認するにはどうすればよいdf1
ですか?
それは私df1
がどのように見えるかです
r - spplot/lattice: 描画されていない/上書きされているオブジェクト
グリッドがあり、このグリッドからいくつかのマップ要素 (縮尺、方位記号など) を使用してマップを作成したいと考えています。必要なグリッドとカラーリングを問題なく描画できますが、追加のマップ要素がマップに表示されません。マニュアルfirst=TRUE
に従って sp.layout 引数に入れてみましたが、それでも成功しません。sp
統合された meuse データセットで問題を再現したので、そのコードをコピーして貼り付けてください。私はこれらのパッケージバージョンを使用します:lattice_0.20-33
そしてsp_1.2-0
そして、それがどのように見えるか...すべて裸です: だから私の質問:
- スケールバー、北向き矢印などはどこに隠れていますか? 私は何か見落としてますか?インターネットで見つけることができるすべての例は、それに似ています。私自身のデータセットでは、縮尺記号と北向き矢印が最初に描かれているのを確認できますが、グリッドがレンダリングされるとすぐに、追加のマップ要素が重ね合わされます (バーではなく、縮尺テキストを除いて、マップに表示されます)。何らかの理由で私が理解していないようです)。
- マップに表示されるエラー メッセージは、サンプリング場所を追加しようとすると表示されます
sampling = list("sp.points", meuse.riv, color = "black")
。このエントリがないと、マップはエラーなしで表示されますが、追加のマップ要素も表示されません。マップ上にサンプリング ポイントを表示するにはどうすればよいですか (たとえば、サイズがこのサンプリング ポイントの絶対値に依存する円で)。
これは今まで何時間も私を悩ませてきましたが、これに対する解決策が見つかりません. Bivand et al の教科書 (2013) "Applied Spatial Data Analysis with R" では、次のエントリを読むことができました。
sp.layout 引数内のアイテムの順序は重要です。原則として、オブジェクトは出現順に描画されます。デフォルトでは、splot のオブジェクトに点または線がある場合、点の前に sp.layout アイテムが描画され、背景としてグリッドとポリゴンを描画できるようになります。グリッドとポリゴンの場合、sp.layout アイテムは後で描画されます (そのため、グリッドやポリゴンによってアイテムが上書きされることはありません)。グリッドの場合、最初にリスト要素を追加 = TRUE すると、グリッドが描画される前にアイテムが描画されます (たとえば、塗りつぶされたポリゴンが追加されるとき)。透明度は、レイヤーを結合するときに役立ちます。PDF デバイスおよびその他のいくつかのデバイスで使用できます。関数 sp.theme は、splot によって作成されるプロットに役立つラティス テーマを返します。これを有効にするには、デバイスを開くか変更した後に trellis.par.set(sp.theme()) を使用します。
ただし、この追加情報でも、この問題を解決できませんでした。ヒントをいただければ幸いです。