【问题标题】:R for loop calculating varianceR for循环计算方差
【发布时间】:2017-02-16 17:36:28
【问题描述】:

我想计算 12 个月内的差异。每个月我都有不同的天数。在我的数据中,我的月份从 1 到 316 编号。我该如何做一个 for 循环,所以首先我有 1-12 个月的差异,然后再增加一个月(2-13)等等?我的数据如下所示:

1990-01-02     1.721      1
1990-01-03     1.839      1
1990-01-04     1.713      1
1990-01-05     1.713      1
1990-01-08     1.811      1
1990-01-09     1.810      1
1990-01-10     1.701      1
1990-01-11     1.733      1
1990-01-12     1.697      1
1990-01-15     1.675      1
1990-01-16     1.616      1
1990-01-17     1.635      1
1990-01-18     1.603      1
1990-01-19     1.601      1
1990-01-22     1.632      1
1990-01-23     1.671      1
1990-01-24     1.519      1
1990-01-25     1.563      1
1990-01-26     1.545      1
1990-01-29     1.565      1
1990-01-30     1.549      1
1990-01-31     1.555      1
1990-02-01     1.672      2
1990-02-02     1.778      2
1990-02-05     1.850      2
1990-02-06     1.986      2
1990-02-07     2.054      2
1990-02-08     2.173      2
1990-02-09     2.065      2
1990-02-12     2.091      2
1990-02-13     2.187      2
1990-02-14     2.213      2
1990-02-15     2.267      2
1990-02-19     2.283      2
1990-02-20     2.217      2
1990-02-21     2.192      2
1990-02-22     2.292      2
1990-02-23     2.257      2
1990-02-26     2.118      2
1990-02-28     2.117      2
1990-03-01     2.083      3
1990-03-02     2.180      3
1990-03-05     2.117      3
1990-03-06     2.082      3
1990-03-07     2.148      3
1990-03-08     2.159      3
1990-03-09     2.103      3
1990-03-12     2.083      3
1990-03-13     2.053      3
1990-03-14     2.029      3
1990-03-15     2.044      3
1990-03-16     2.032      3
1990-03-19     1.998      3
1990-03-20     2.038      3
1990-03-21     2.089      3
1990-03-22     2.029      3
1990-03-23     2.027      3
1990-03-27     2.013      3
1990-03-28     2.006      3
1990-03-29     2.038      3
1990-03-30     2.044      3
1990-04-02     1.921      4
1990-04-03     1.992      4
1990-04-04     1.982      4
1990-04-05     1.929      4
1990-04-06     1.853      4
1990-04-09     1.945      4
1990-04-10     1.839      4
1990-04-11     1.834      4
1990-04-12     1.869      4
1990-04-17     1.834      4
1990-04-18     1.801      4
1990-04-19     1.763      4
1990-04-20     1.719      4
1990-04-24     1.653      4
1990-04-25     1.739      4
1990-04-26     1.714      4
1990-04-27     1.791      4
1990-04-30     1.778      4
1990-05-02     1.857      5
1990-05-03     1.980      5
1990-05-04     2.062      5
1990-05-07     2.000      5
1990-05-08     1.927      5
1990-05-09     2.017      5
1990-05-10     1.955      5
1990-05-11     1.811      5
1990-05-14     1.757      5
1990-05-15     1.799      5
1990-05-16     1.774      5
1990-05-17     1.799      5
1990-05-18     1.820      5
1990-05-21     1.739      5
1990-05-22     1.858      5
1990-05-23     1.896      5
1990-05-25     1.876      5
1990-05-28     1.945      5
1990-05-29     2.010      5
1990-05-30     1.967      5
1990-05-31     1.963      5
1990-06-01     1.945      6
1990-06-05     1.953      6
1990-06-06     1.920      6
1990-06-07     1.944      6
1990-06-08     1.931      6
1990-06-11     1.916      6
1990-06-12     1.888      6
1990-06-13     1.917      6
1990-06-15     1.883      6
1990-06-18     1.838      6
1990-06-19     1.864      6
1990-06-20     1.969      6
1990-06-21     2.018      6
1990-06-22     1.961      6
1990-06-25     1.953      6
1990-06-26     1.915      6
1990-06-27     1.903      6
1990-06-28     1.897      6
1990-06-29     1.919      6
1990-07-02     1.953      7
1990-07-03     1.955      7
1990-07-04     2.070      7
1990-07-05     2.026      7
1990-07-06     2.026      7
1990-07-09     2.034      7
1990-07-10     1.995      7
1990-07-11     2.021      7
1990-07-12     2.005      7
1990-07-13     2.047      7
1990-07-16     2.039      7
1990-07-17     1.903      7
1990-07-18     1.949      7
1990-07-19     1.949      7
1990-07-20     2.009      7
1990-07-23     1.969      7
1990-07-24     1.959      7
1990-07-25     1.971      7
1990-07-26     1.995      7
1990-07-27     1.985      7
1990-07-30     1.887      7
1990-07-31     1.879      7
1990-08-01     1.822      8
1990-08-02     1.780      8
1990-08-03     1.683      8
1990-08-06     1.477      8
1990-08-07     1.541      8
1990-08-08     1.481      8
1990-08-09     1.513      8
1990-08-10     1.491      8
1990-08-13     1.457      8
1990-08-14     1.555      8
1990-08-15     1.655      8
1990-08-16     1.647      8
1990-08-17     1.585      8
1990-08-20     1.561      8
1990-08-21     1.423      8
1990-08-22     1.460      8
1990-08-23     1.435      8
1990-08-24     1.529      8
1990-08-27     1.571      8
1990-08-28     1.559      8
1990-08-29     1.545      8
1990-08-30     1.639      8
1990-08-31     1.629      8
1990-09-03     1.676      9
1990-09-04     1.620      9
1990-09-05     1.651      9
1990-09-06     1.591      9
1990-09-07     1.633      9
1990-09-10     1.672      9
1990-09-11     1.650      9
1990-09-12     1.726      9
1990-09-13     1.642      9
1990-09-14     1.621      9
1990-09-17     1.677      9
1990-09-18     1.665      9
1990-09-19     1.581      9
1990-09-20     1.508      9
1990-09-21     1.452      9
1990-09-24     1.354      9
1990-09-25     1.301      9
1990-09-26     1.345      9
1990-09-27     1.241      9
1990-09-28     1.215      9
1990-10-01     1.339     10
1990-10-02     1.318     10
1990-10-04     1.328     10
1990-10-08     1.277     10
1990-10-09     1.211     10
1990-10-10     1.264     10
1990-10-11     1.191     10
1990-10-12     1.249     10
1990-10-15     1.327     10
1990-10-16     1.295     10
1990-10-17     1.237     10
1990-10-18     1.392     10
1990-10-19     1.436     10
1990-10-22     1.420     10
1990-10-23     1.492     10
1990-10-24     1.460     10
1990-10-25     1.468     10
1990-10-26     1.418     10
1990-10-29     1.363     10
1990-10-30     1.368     10
1990-10-31     1.380     10
1990-11-01     1.340     11
1990-11-02     1.304     11
1990-11-05     1.272     11
1990-11-06     1.354     11
1990-11-07     1.252     11
1990-11-08     1.326     11
1990-11-09     1.299     11
1990-11-12     1.325     11
1990-11-13     1.353     11
1990-11-14     1.345     11
1990-11-15     1.369     11
1990-11-16     1.384     11
1990-11-19     1.450     11
1990-11-20     1.422     11
1990-11-22     1.502     11
1990-11-23     1.426     11
1990-11-26     1.370     11
1990-11-27     1.324     11
1990-11-28     1.293     11
1990-11-29     1.346     11
1990-11-30     1.430     11
1990-12-03     1.484     12
1990-12-04     1.460     12
1990-12-05     1.454     12
1990-12-06     1.493     12
1990-12-07     1.471     12
1990-12-10     1.493     12
1990-12-11     1.485     12
1990-12-12     1.451     12
1990-12-13     1.400     12
1990-12-14     1.402     12
1990-12-17     1.366     12
1990-12-18     1.350     12
1990-12-19     1.334     12
1990-12-20     1.193     12
1990-12-21     1.225     12
1990-12-27     1.183     12
1990-12-28     1.143     12
1991-01-02     1.133     13
1991-01-03     1.096     13
1991-01-04     1.129     13
1991-01-07     1.046     13
1991-01-08     1.112     13
1991-01-09     1.094     13
1991-01-10     1.110     13
1991-01-11     1.115     13
1991-01-14     1.074     13
1991-01-15     1.078     13
1991-01-16     0.978     13
1991-01-17     1.147     13
1991-01-18     1.036     13
1991-01-21     1.086     13
1991-01-22     1.059     13
1991-01-23     0.996     13
1991-01-24     1.037     13
1991-01-25     1.036     13
1991-01-28     1.012     13
1991-01-29     1.030     13
1991-01-30     1.067     13
1991-01-31     1.110     13
1991-02-01     1.094     14
1991-02-04     1.139     14
1991-02-05     1.146     14
1991-02-06     1.102     14
1991-02-07     1.145     14
1991-02-08     1.199     14
1991-02-11     1.242     14
1991-02-12     1.243     14
1991-02-13     1.256     14
1991-02-14     1.246     14
1991-02-15     1.440     14
1991-02-18     1.482     14
1991-02-19     1.476     14
1991-02-20     1.426     14
1991-02-21     1.482     14
1991-02-22     1.515     14
1991-02-25     1.561     14
1991-02-26     1.525     14
1991-02-27     1.559     14
1991-02-28     1.482     14
1991-03-01     1.438     15
1991-03-04     1.486     15
1991-03-05     1.526     15
1991-03-06     1.623     15
1991-03-07     1.603     15
1991-03-08     1.650     15
1991-03-11     1.681     15
1991-03-12     1.718     15
1991-03-13     1.688     15
1991-03-14     1.754     15
1991-03-15     1.720     15
1991-03-18     1.690     15
1991-03-19     1.708     15
1991-03-20     1.690     15
1991-03-21     1.619     15
1991-03-22     1.597     15
1991-03-25     1.650     15
1991-03-26     1.612     15
1991-03-27     1.601     15
1991-03-28     1.663     15
1991-04-02     1.746     16
1991-04-03     1.780     16

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    假设您描述月份的第三个变量称为“月”。 x 是您的数据框,y 是您存储方差的新变量。也就是说,在 305-316、306-316 等月份您不会有方差。

        y<-NA
        for(i in 1:304){
        y[i]<-var(x[x$month %in% c(i:i+11),2])
        }
    

    【讨论】:

    • 如果我将其更改为:“for(i in 1:316){y[i]
    • @Florian - 我假设 2 是您上面的第二列,所以我编写的代码要求该变量的方差(2.065、2.091 等)。如果第一列中的日期变量只是行的名称而不是列本身,那么您是对的,您希望将 1 引用为列。
    猜你喜欢
    • 2019-06-17
    • 2021-01-05
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多