Как добавить только одно наблюдение за один раз из нескольких наблюдений в R? - PullRequest
0 голосов
/ 16 мая 2018

Скажем, у меня есть наблюдения за несколькими периодами для финансовых данных, как я могу создать функцию в R, которая добавляет только одно наблюдение за раз по всему моему набору данных, чтобы я мог сравнить, как одно наблюдение влияет на мои исходные данные?Скажем, например, что у меня есть что-то вроде этого:

             Apple Microsoft     Tesla    Amazon
     2010 0.8533719 0.8078440 0.2620114 0.1869552
     2011 0.7462573 0.5127501 0.5452448 0.1369686
     2012 0.7580671 0.5062639 0.7847919 0.8362821
     2013 0.3154078 0.6960258 0.7303597 0.6057027
     2014 0.4741735 0.3906580 0.4515726 0.1396147
     2015 0.4230036 0.4728911 0.1262413 0.7495193
     2016 0.2396552 0.5001825 0.6732861 0.8535837
     2017 0.2007575 0.8875209 0.5086837 0.2211072
#And I define my original covariance matrix as follows: 
     cov.m <- cov(x[1:5,])
#I would like to add only one new observation at a time, so the results should be:
     cov(x[1:5,]), cov(x[1:6,]), cov(x[1:7,]), cov(x[1:8,])

Я пытался использовать rbind и цикл повторения, но кажется, что мне все еще нужно определить каждую строку для включения в rbind, что довольно утомительно, еслиЯ хочу протестировать, скажем, более 100 различных наблюдений, поскольку мне нужно вручную указать все наблюдения, и в этом случае я бы не использовал цикл повторения.

1 Ответ

0 голосов
/ 16 мая 2018

Это приближает вас к ожидаемому результату?

lapply(5:nrow(x), function(y) cov(x[1:y, ]))
...