Как вычесть данные некоторых участников из основного фрейма данных в R - PullRequest
0 голосов
/ 20 марта 2020

У меня есть ДВА фрейма данных DF1 и DF2 следующих участников и переменных, например. Я хочу вычесть DF2 из DF1.

DF1     =   Part Age  B.P 
            1    23   87
            2    34   76
            3    23   75
            4    25   75
            5    24   78

DF2      =  Part  Age B.P
             3    23   75
             5    24   78

Я хочу вычесть DF2 из DF1, поэтому вывод должен быть похож на

FinalDF = Part   Age   B.P
           1      23    87
           2      34    76
           4      25    75

Я использую

FinalDF <-setdiff(DF1,DF2)

Но в R ответ неверен. Мои исходные данные настолько велики, что имеют размер выборки 600 000, и я должен вычесть 115 из них, но этого не произошло .. Эта формула только вычитает 45, хотя они должны удалить 115 выборочных данных ..

Воспроизводимые данные:

DF1 <- data.frame(
  Part = c(1,2,3,4,5),
  Age = c(23,34,23,35,34),
  B.P = c(87,76,75,75,78))


DF2 <- data.frame(
  Part = c(3,5),
  Age = c(23,34),
  B.P = c(75,78))

Ответы [ 2 ]

0 голосов
/ 21 марта 2020

Может быть, вы можете попробовать subset + %in%

DFout <- subset(DF1, !Part%in%DF2$Part)

такой, что

> DFout
  Part Age B.P
1    1  23  87
2    2  34  76
4    4  35  75
0 голосов
/ 20 марта 2020

В базе R. Следующее предполагает, что DF1 всегда имеет все номера деталей, всегда начинается с 1, и нет повторных или пропущенных номеров деталей. Эти ограничения можно обойти, если ваши данные не соответствуют им, дайте мне знать.

RowsToRemove <- match(DF2$Part,DF1$Part)
mydata <- DF1[-RowsToRemove,]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...