2017-12-12 9 views
0

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でなければなりません。

私は間違っていますか?私はここでマージを使うことができたと思いました。

ありがとうございます!

+0

'dplyr'パッケージから' left_join() '関数を使うようにしてください。それは、あなたが探しているものを実行し、 'merge'と同じ方法で動作しなければなりません(さらに効率的です)。 –

+0

結果テーブルをレプリケートできません。全く同じコード(all.x = T)を実行すると、期待通りにすべてのNAsがO3カラムに追加されます。 –

+0

マージを行うと 'O3'のために' NA'がすべて得られます。私の推測:あなたは 'T'という名前の変数を割り当てました。論理名には常にTRUEとFALSEを使用します。 'merge(d1、d2、by = c(" lon "、" lat ")、all.x = TRUE)'を試してください。 –

答えて

0

left_join()機能からdplyrパッケージが動作します。

dat1 <- data.frame(lon = c(-17, -16.6, -16.2, -15.8, -15.4, -15), 
        lat = rep(32, 6), 
        MDA8o3 = c(79.32538, 79.36805, 79.36243, 79.36818, 79.36213, 79.34682)) 

dat2 <- data.frame(lon = c(13.8, 16.6, 15.8, 13.0, 11.8, 14.6), 
        lat = c(48.50, 47.75, 48.75, 46.75, 47.25, 47.75), 
        o3 = c(91.09123, 93.46220, 90.93342, 93.77436, 38.84968, 93.88587)) 


library(dplyr) 

res <- left_join(dat1, dat2, by = c("lon", "lat")) 
+0

私はleft_joinで同様の結果を得ました:( – user3231352

+0

あなたの例にいくつかのマッチする行を追加できますか?2つのdata.framesの間に共通のlon/lat組み合わせはありません。 –

関連する問題