0

2 つのデータ フレームがあります。1 つは巨大 (200 万行以上) で、もう 1 つは小さい (約 30 万行)。小さいデータ フレームは、大きいデータ フレームのサブセットです。唯一の違いは、大きい方には小さい方に追加する必要がある追加の属性があることです。

具体的には、大きなデータ フレームの属性は (Date、Time、Address、Flag) で、小さなデータ フレームの属性は (Date、Time、Address) です。各行の小さなデータ フレームに対応する正しいフラグ値を取得する必要があります。「マージされた」データ フレームの最終的なサイズは、大きなデータ フレームから未使用の行を破棄して、小さいサイズと同じにする必要があります。

これを達成するための最良の方法は何ですか?

更新:次のようにマージ機能をテストしました:

new<-merge(data12, data2, by.x = c("Date", "Time", "Address"), 
           by.y=c("Date", "Time", "Address"))

new<-merge(data12, data2, by = c("Date", "Time", "Address"))

どちらも、適切な数の属性と次の警告メッセージを含む空のデータ フレーム (新規) を返します。

Warning message:In `[<-.factor`(`*tmp*`, ri, value = c(15640, 15843, 15843, 15161,  : invalid factor level, NAs generated
4

2 に答える 2

5
    R> df1 = data.frame(a = 1:5, b = rnorm(5))
    R> df1
      a           b
    1 1 -0.09852819
    2 2 -0.47658118
    3 3 -2.14825893
    4 4  0.82216912
    5 5 -0.36285430
    R> df2 = data.frame(a = 1:10000, c = rpois(10000, 6))
    R> head(df2)
      a c
    1 1 2
    2 2 4
    3 3 5
    4 4 3
    5 5 3
    6 6 8
    R> merge(df1, df2)
      a           b c
    1 1 -0.09852819 2
    2 2 -0.47658118 4
    3 3 -2.14825893 5
    4 4  0.82216912 3
    5 5 -0.36285430 3
于 2013-07-13T02:38:05.147 に答える