25

大きい data.frame と小さい data.frame があるとします。小さい方が大きい方の中に含まれている場合、小さい方の data.frame の行を減算するにはどうすればよいですか?違いのある結果を残してください:

大きい - 小さい

例:

小さなdata.frame:

     ID       CSF1PO CSF1PO.1 D10S1248 D10S1248.1 D12S391 D12S391.1
203079_BA_M     10       11       14         16      -9        -9
203079_BA_F      8       12       14         17      -9        -9
203080_BA_M     10       12       13         13      -9        -9

ビッグ データ フレーム:

      ID      CSF1PO CSF1PO.1 D10S1248 D10S1248.1 D12S391 D12S391.1
203078_MG_M     -9       -9       15         15      18        20
203078_MG_F     -9       -9       14         15      17        19
203079_BA_M     10       11       14         16      -9        -9
203079_BA_F      8       12       14         17      -9        -9
203080_BA_M     10       12       13         13      -9        -9
203080_BA_F     10       11       14         16      -9        -9
203081_MG_M     10       12       14         16      -9        -9
203081_MG_F     11       12       15         16      -9        -9
203082_MG_M     11       11       13         15      -9        -9
203082_MG_F     11       11       13         14      -9        -9

小さい data.frame は、大きい data.frame の行 3、4、および 5 に対応します。

4

3 に答える 3

17

dplyr で:

library(dplyr)

setdiff(BigDF, SmallDF)

詳細情報: Hadley のdply チートシート: https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf

例を含む簡潔な集合操作関数 http://rpackages.ianhowson.com/cran/dplyr/man/setops.html (ただし、データ操作の文法全体は全体的に優れたリソースです)

以下はあなたの質問への直接的な回答ではありませんが、私にとっては頻繁に関連しています(そして非常に役に立ちました)。

新しいデータフレームと同じデータフレームの以前のバージョン (同じレコード内) の間で発生した新しい変更をキャプチャする場合は、コードを次のようにします。

setdiff(NewDF, OldDF)
于 2016-05-19T20:56:22.687 に答える