Я хочу создать матрицу из моих данных. Мои данные состоят из двух столбцов: дата и мои наблюдения для каждой даты. Я хочу, чтобы матрица имела год в виде строк, а дни - в виде столбцов, например:
17 18 19 20 ... 31
1904 x11 x12 ...
1905
1906
.
.
.
2019
Дни в этом случае относятся к декабрю каждого года. Я хотел бы, чтобы пропущенные значения равнялись NA.
Вот пример моих данных:
> head(cdata)
# A tibble: 6 x 2
Datum Snödjup
<dttm> <dbl>
1 1904-12-01 00:00:00 0.02
2 1904-12-02 00:00:00 0.02
3 1904-12-03 00:00:00 0.01
4 1904-12-04 00:00:00 0.01
5 1904-12-12 00:00:00 0.02
6 1904-12-13 00:00:00 0.02
Я подумал, что первое, что мне нужно сделать, это разделить дату на год, месяц и день (европейское форматирование, ГГГГ-ММ -ДД) так что я сделал это и избавился от столбца даты (тот, который говорит Datum), а также избавился от ненужных дней, а именно те <17 *. 1009 * <pre>cdata %>%
dplyr::mutate(year = lubridate::year(Datum),
month = lubridate::month(Datum),
day = lubridate::day(Datum))
select(cd, -c(Datum))
cu <- cd[which(cd$day > 16
& cd$day < 32
& cd$month == 12),]
и теперь это выглядит как this:
> cu
# A tibble: 1,284 x 4
Snödjup year month day
<dbl> <dbl> <dbl> <int>
1 0.01 1904 12 26
2 0.01 1904 12 27
3 0.01 1904 12 28
4 0.12 1904 12 29
5 0.12 1904 12 30
6 0.15 1904 12 31
7 0.07 1906 12 17
8 0.05 1906 12 18
9 0.05 1906 12 19
10 0.04 1906 12 20
# … with 1,274 more rows
Теперь мне нужно поместить мои данные в матрицу с пропущенными значениями в виде NA. Есть какой-либо способ сделать это?