2017-02-16 1 views
-2

Я хочу рассчитать дисперсию в течение 12 месяцев. В каждом месяце у меня разное количество дней. По моим данным, у меня есть месяцы от 1 до 316 пронумерованных. Как я делаю for-loop, так что сначала у меня есть разница в месяцах 1-12, а не в месяц (2-13) и так далее? мои данные выглядят так:R для вычисления отклонения цикла

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 

ответ

0

Допустим, ваша третья переменная, описывающая месяц, называется «месяц». х ваш кадр данных и у- новая переменная, что вы храните ваши отклонения в. Это, как говорится, вы не будете иметь дисперсию в течение нескольких месяцев 305-316, 306-316 и т.д.

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

Мои результаты все нули. Так что это не работает – Florian

+0

, если я изменю его на: «for (i in 1: 316) {y [i] <- var (BMWmonths [BMWmonths $ monate% in% c (i: i + 11), 1])} «Я получаю некоторые результаты. Что говорит последняя цифра (2 или 1)? – Florian

+0

@Florian - я предположил, что 2 был вашим вторым столбцом выше, поэтому код, который я написал, запрашивал дисперсию в этой переменной (2.065, 2.091 и т. Д.). Если переменная date в первом столбце - это просто имена строк, а не сам столбец, то вы правы, вы хотели бы ссылаться на 1 как на столбец. –