Подмножество фрейма данных, если его дата больше даты другого фрейма данных - PullRequest
0 голосов
/ 04 мая 2018

У меня есть 2 кадра данных:

C1
Date|Artist
01-11-1955|M
18-01-1956|M
19-04-1956|M
01-05-1956|M
21-11-1956|X


T1
Date|Artist|FeatArtist
06-11-1955|UNK|M
15-01-1956|M|UNK
15-04-1956|UNK|M
06-05-1956|UNK|M
25-11-1956|X|UNK
25-11-1956|M|UNK

Я хочу иметь возможность установить подмножество T1, если T1 $ Artist == C1 $ Artist | T1 $ FeatArtist == C1 $ Исполнитель и дата T1 произошли после C1 Дата

Результат должен быть:

T1
Date|Artist|FeatArtist
06-11-1955|UNK|M
06-05-1956|UNK|M
25-11-1956|X|UNK

Я пытался:

t<- T1[which(T1$Artist%in% unique(C1$Artist) | T1$FeatArtist%in% unique(C1$Artist)& T1$Date > max(C1$Date)),] 

но не получилось - пожалуйста, есть идеи, как мне этого добиться?

1 Ответ

0 голосов
/ 04 мая 2018
T1$Date=as.Date(strptime(T1$Date,"%d-%m-%Y"))
C1$Date=as.Date(strptime(C1$Date,"%d-%m-%Y"))

e=quote(Date.x>Date.y&Date.x-Date.y<7)
a=subset(merge(T1,C1,by="Artist",all=TRUE),eval(e))
b=subset(merge(T1,C1,by.x="FeatArtist",by.y="Artist",all=TRUE),eval(e))
rbind(a,setNames(b,names(a)),row.names=NULL)[-4]

    Artist     Date.x FeatArtist
12       X 1956-11-25        UNK
1        M 1955-11-06        UNK
121      M 1956-05-06        UNK
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...