2016-06-08 3 views
0

У меня есть набор данных, который выглядит примерно так (фактический набор данных - это 150000 строк с дополнительными столбцами информации о пухах, таких как название компании и т. Д.):расчет корреляции даты в r (приводящий к потенциальному временному ряду)

Date   return1 return2 rank 
01/31/2008 0.05434 0.23413 3 
01/31/2008 0.03423 0.43423 4 
01/31/2008 0.65277 0.23423 1 
01/31/2008 0.02342 0.47234 4 
02/31/2008 0.01463 0.
02/31/2008 0.13456 0.52552 2 
02/31/2008 0.34534 0.36663 1 
02/31/2008 0.00324 0.56463 3 
... 
12/31/2015 0.21234 0.02333 2 
12/31/2015 0.07245 0.87234 1 
12/31/2015 0.47282 0.12998 1 
12/31/2015 0.99022 0.03445 2 

в основном нужно caculate соотношения дат конкретных между return1 и rank (так корбанком. на 01/31/2008, 02/31/2008, и так далее). Я знаю, что могу разделить данные с помощью функции split(), но я не уверен, как получить корреляцию по дате. Реальные данные имеют около 260 записей в день и около 68 дат, поэтому вручную подмножество исходной таблицы и выполнение вычислений требует много времени, но, что более важно, более восприимчиво к ошибкам.

Моя конечная цель - создать временной ряд корреляций в разные даты.

Заранее благодарю вас!

+0

В этом чит-листе 'dplyr' и' tidyr' есть все, что вам нужно, и представляет его ясным и организованным образом: https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling -cheatsheet.pdf –

+0

фантастически благодарим вас. fyi, используя предложенный лист, я нашел ответ: 'корреляции <-as.data.frame (merged_data%>% group_by (Date)%>% summary (cor (X1.Mo..Forward.Returns,' Team Rank')))) ' – Noah

ответ

0

У меня была эта же проблема раньше, за исключением того, что я не вычислял корреляцию. Что бы я сделал это

a %>% group_by(Date) %>% summarise(Correlation = cor(return1, rank)) 

И это обеспечит, на каждую дату, значение корреляции между return1 и rank. Не забывайте, что вы можете указать, какую корреляцию вы хотели бы (например, Spearman).