У меня есть фрейм данных с финансовыми данными для индекса с именем S & P500 (дата, тикер, цена).
У меня есть другой фрейм данных с (дата, тикер, действие).
Action == "IN", когда тикер добавляется в индекс на дату
Action == "OUT", когда тикер удаляется из индекса на дату
И я хочу добавить 2 новых столбцана мой основной df, с TRUE для ключа (дата, тикер), когда пара найдена во втором df.
Сегодня у меня есть что-то вроде:
library(tidyverse)
Ticker = c("DOW","MSCI","BJS")
Action = c("IN","IN","OUT")
Date = c("2019-04-02", "2018-04-04","2010-04-29")
sp500_InOut = data.frame(Ticker, Action, Date)
Ticker = c("DOW", "DOW","MSCI", "MSCI","BJS","BJS")
ref.date = c("2019-04-02", "2018-04-04", "2018-04-04","2010-04-29", "2018-04-04","2010-04-29")
close = c(1,2,3,4,5,6)
sp500_OHLC = data.frame(Ticker, ref.date, close)
Тогда вЧтобы обновить столбцы sp500_OHLC $ IN и sp500_OHLC $ OUT, мне удалось присоединиться так:
#not working
left_join(sp500_OHLC, sp500_InOut, by = c("Ticker" = "Ticker", "ref.date" = "Date"))
%>% mutate(IN <- ifelse(is.na(Action),FALSE,
ifelse(Action == "IN", TRUE)
%>% mutate(OUT <- ifelse(is.na(Action),FALSE,
ifelse(Action == "OUT", TRUE)
Но я не могу понять, теперь я могу обновить свои столбцы.
Спасибо! !