# Sample data
dat = expand.grid(
x = 1:3,
y = 1:3,
date = c(Sys.Date(), Sys.Date() + 1)
)
dat$value = 1:18
dat
## x y date value
## 1 1 1 2020-05-05 1
## 2 2 1 2020-05-05 2
## 3 3 1 2020-05-05 3
## 4 1 2 2020-05-05 4
## 5 2 2 2020-05-05 5
## 6 3 2 2020-05-05 6
## 7 1 3 2020-05-05 7
## 8 2 3 2020-05-05 8
## 9 3 3 2020-05-05 9
## 10 1 1 2020-05-06 10
## 11 2 1 2020-05-06 11
## 12 3 1 2020-05-06 12
## 13 1 2 2020-05-06 13
## 14 2 2 2020-05-06 14
## 15 3 2 2020-05-06 15
## 16 1 3 2020-05-06 16
## 17 2 3 2020-05-06 17
## 18 3 3 2020-05-06 18
#############################
# Order
dat = dat[order(dat$date, dat$y, dat$x), ]
# To 'array'
a = array(dat$value, c(3, 3, 2))
a
## , , 1
##
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
##
## , , 2
##
## [,1] [,2] [,3]
## [1,] 10 13 16
## [2,] 11 14 17
## [3,] 12 15 18
# To 'stars'
library(stars)
## Loading required package: abind
## Loading required package: sf
## Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 7.0.0
r = st_as_stars(a)
r = st_set_dimensions(r, names = c("x", "y", "date"))
r = st_set_dimensions(r, "x", values = 1:3)
r = st_set_dimensions(r, "y", values = 1:3)
r = st_set_dimensions(r, "date", values = c(Sys.Date(), Sys.Date() + 1))
plot(r, text_values = TRUE)

# To 'raster'
library(raster)
## Loading required package: sp
r = as(r, "Raster")
plot(r)
