R: Удаление несоответствующих строк в кадрах данных - PullRequest
1 голос
/ 25 апреля 2020

У меня есть два фрейма данных - germany_yields и italy_yields. Если указанная дата c, которая появляется в одной из строк germany_yields, отсутствует ни в одной из строк italy_yields, я хотел бы удалить эту строку из germany_yields (и наоборот).

Например, вот пять строк, взятых из любого из кадров:

germany_yields:                        italy_yields:

            Date Yield                             Date Yield        
642 Jan 06, 2008 4.087                 642 Jan 06, 2008 4.461
643 Dec 30, 2007 4.193                 643 Dec 30, 2007 4.522
644 Dec 23, 2007 4.368                 644 Dec 16, 2007 4.563
645 Dec 16, 2007 4.268                 645 Dec 09, 2007 4.601        
646 Dec 09, 2007 4.304                 646 Dec 02, 2007 4.420
647 Dec 02, 2007 4.105                 647 Nov 25, 2007 4.439

Дата De c 23, 2007 присутствует в germany_yields (строка 644), но не в пределах italy_yields. Поэтому я хотел бы удалить строку 644 из germany_yields. Как я могу это сделать?

Для справки, вот код, который у меня есть:

germany_yields <- read.csv(file = "Germany 10-Year Yield Weekly (2007-2020).csv")
italy_yields <- read.csv(file = "Italy 10-Year Yield Weekly (2007-2020).csv")

germany_yields <- germany_yields[, -(3:6)]
italy_yields <- italy_yields[, -(3:6)]

colnames(germany_yields)[1] <- "Date"
colnames(germany_yields)[2] <- "Yield"
colnames(italy_yields)[1] <- "Date"
colnames(italy_yields)[2] <- "Yield"

Ответы [ 2 ]

2 голосов
/ 25 апреля 2020

Самый простой подход - использовать %in%:

germany_yields[germany_yields$Date %in% italy_yields$Date, ]
0 голосов
/ 25 апреля 2020

Мы также можем использовать dplyr

library(dplyr)
germany_yields %>%
      filter(Date %in% italy_yields$Date)
...