【问题标题】:How to add only one observation at a time amongst several observations in R?如何在 R 中的多个观察值中一次仅添加一个观察值?
【发布时间】:2018-05-16 13:36:32
【问题描述】:

假设我对金融数据有几个时期的观察,我如何在 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 多个不同的观察结果,这是非常乏味的,因为我需要手动进行指定所有观察结果,在这种情况下我也不会使用重复循环。

【问题讨论】:

    标签: r loops repeat rbind


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      相关资源
      最近更新 更多