假设我有一个更大的数据帧和一个更小的数据帧.如果较小的一个包含在较大的一个内,我怎么能有:
更大 - 更小
例:
小数据框:
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
Run Code Online (Sandbox Code Playgroud)
大数据框架:
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
Run Code Online (Sandbox Code Playgroud)
小数据帧对应于较大数据帧的行3,4和5.
lee*_*sej 13
在dplyr中:
library(dplyr)
setdiff(BigDF, SmallDF)
Run Code Online (Sandbox Code Playgroud)
更多信息:Hadley的dply cheatsheet: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)
Run Code Online (Sandbox Code Playgroud)