Ответ 1
Попробуйте следующее:
BigDF[ !(BigDF$ID %in% SmallDF$ID), ]
Предположим, что у меня есть больший кадр данных и меньше. Если меньший находится внутри большего, как я могу:
Больше - меньше
Пример:
Малый фрейм данных:
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
Малый кадр данных соответствует строкам 3, 4 и 5 большего кадра данных.
Спасибо!
Попробуйте следующее:
BigDF[ !(BigDF$ID %in% SmallDF$ID), ]
В dplyr:
library(dplyr)
setdiff(BigDF, SmallDF)
Дополнительная информация: 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)