Удалить все строки ниже определенной строки в R, соответствующей другому значению в другом фрейме данных

Я хочу удалить все строки в df1 ниже определенной строки. Эта конкретная строка всегда соответствует первому значению (Имени) с df2.

дф1: | Имя | Форма| Дата | |:--------|------|------| | 00000 | ряд |10-2020| | 00001 | ряд |11-2020| |00002 |ряд |12-2020| |00003 |ряд |13-2020| |00004 |ряд |14-2020|

дф2: | Имя | Форма| Дата | |:-------- | -----|------| |00002 |ряд |12-2020| |00003 |ряд |13-2020| |00004 |ряд |14-2020|

введите здесь описание изображения

В этом случае все строки в df1 ниже 0002 будут удалены. В df2 строки ниже 00002 не обязательно соответствуют строкам ниже 00002 в df1. Спасибо.


person Sebastian Fallas    schedule 14.04.2021    source источник
comment
Можете ли вы добавить свои данные в воспроизводимый пример?   -  person Arslan Sh.    schedule 14.04.2021
comment
@АрсланШ. я пытался исправить это, но я не знаю, почему таблица не делает так, как должно быть.   -  person Sebastian Fallas    schedule 14.04.2021
comment
@ArslanSh.Прикрепил картинку.   -  person Sebastian Fallas    schedule 14.04.2021


Ответы (1)


Вот один из способов получить df1 со строками ниже первой записи df2$Name, удаленной с помощью функции which (я просто ввел datechar, а не каждую дату, которая у вас есть в вашем примере, поскольку дата не используется).

df1 <- data.frame("Name"=seq(0,4),
                  "Shape"=rep("row",5),
                  "Date"=rep("datechar",5))
                  
df2 <- data.frame("Name"=seq(2,4),
                  "Shape"=rep("row",3),
                  "Date"=rep("datechar",3))

which(df1$Name == df2$Name[1])

df1[1:(which(df1$Name == df2$Name[1])),]
person Rob    schedule 14.04.2021
comment
Что было бы, если бы строки не были фиксированными? Не 5, но каждый раз, когда я запускаю его, он будет меняться. - person Sebastian Fallas; 15.04.2021
comment
Какие ряды вы имеете в виду? Пока вы всегда используете первую строку df2 в качестве критерия и берете строки из df1, начиная с строки 1, размер df1 не должен иметь значения. - person Rob; 15.04.2021
comment
О, теперь понял, спасибо. - person Sebastian Fallas; 16.04.2021