2つのdata.frameを異なる長さでマージしようとしています。座標(経度と緯度)を参照する列の値が同一でない位置では、NAを必要としました。私はマージを使用していますが、結果は正しくなく、私は何が間違っているのか分かりません。 2つ目のデータフレームに同じ座標がない列にはNA(またはI expected)が必要で、両方のdata.framesの座標(列lonとlat)が同じ場合は値をそのまま残してください。 「、( "LON" をマージ(D1、D2、=によるc - DF <:今merge data.frame 2つの列で長さと条件が異なる
#d1を
lon lat MDA8O3
-17.0 32 79.32538
-16.6 32 79.36805
-16.2 32 79.36243
-15.8 32 79.36818
-15.4 32 79.36213
-15.0 32 79.34682
# d2
O3 lon lat
91.09123 13.8 48.50
93.46220 16.6 47.75
90.93342 15.8 48.75
93.77436 13.0 46.75
38.84968 11.8 47.25
93.88587 14.6 47.75
、私が使用して: これらは私の元のデータの短いサンプルがどのように見えるですLAT」)、all.x = T)
しかし、結果が正しくありません:
lon lat MDA8O3 O3
-17 32 79.32538 25.10291
-17 32 79.32538 52.06498
-17 32 79.32538 73.24021
-17 32 79.32538 31.79225
-17 32 79.32538 20.99357
-17 32 79.32538 24.55819
私もすべて= Tで、試してみて、それが正しいではありません。最初のdata.frameのlonとlatと一致しないlonとlatでは、O3の列はNAでなければなりません。
私は間違っていますか?私はここでマージを使うことができたと思いました。
ありがとうございます!
'dplyr'パッケージから' left_join() '関数を使うようにしてください。それは、あなたが探しているものを実行し、 'merge'と同じ方法で動作しなければなりません(さらに効率的です)。 –
結果テーブルをレプリケートできません。全く同じコード(all.x = T)を実行すると、期待通りにすべてのNAsがO3カラムに追加されます。 –
マージを行うと 'O3'のために' NA'がすべて得られます。私の推測:あなたは 'T'という名前の変数を割り当てました。論理名には常にTRUEとFALSEを使用します。 'merge(d1、d2、by = c(" lon "、" lat ")、all.x = TRUE)'を試してください。 –