如何在R中的几个观测值中一次只添加一个观测值?

时间:2018-05-16 13:36:33

标签: r loops repeat rbind

假设我对财务数据的几个时段有观察,如何在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 :(得分:2)

这会让您更接近预期的输出吗?

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