如何在 R 中的多个观察结果中一次只添加一个观察结果?
How to add only one observation at a time amongst several observations in R?
假设我有几个时期的金融数据观察,我如何在 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 多个不同的观察结果,这会非常乏味,因为我然后手动需要指定所有的观察结果,在那种情况下我也不会使用重复循环。
这是否让您更接近您的预期输出?
lapply(5:nrow(x), function(y) cov(x[1:y, ]))
假设我有几个时期的金融数据观察,我如何在 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 多个不同的观察结果,这会非常乏味,因为我然后手动需要指定所有的观察结果,在那种情况下我也不会使用重复循环。
这是否让您更接近您的预期输出?
lapply(5:nrow(x), function(y) cov(x[1:y, ]))