Nothing
library(metR)
context("Impute EOF")
library(data.table)
data(geopotential)
geopotential <- copy(geopotential)
geopotential[, gh.t := Anomaly(gh), by = .(lat, lon, month(date))]
# Add gaps to field
geopotential[, gh.gap := gh.t]
set.seed(42)
geopotential[sample(1:.N, .N*0.3), gh.gap := NA]
geopotential[, gh.impute := ImputeEOF(gh.gap ~ lat + lon | date, max.eof = 5,
max.iter = 2000)]
test_that("Returns a vector in the correct order", {
expect_equal(geopotential[!is.na(gh.gap), all(gh.gap - gh.impute == 0)],
TRUE)
})
test_that("Imputes reasonable values", {
expect_equal(sign(geopotential[, cor(gh, gh.impute)]),
1)
})
M <- metR:::.tidy2matrix(geopotential, lon + lat ~ date, value.var = "gh.gap")$matrix
M.imputed <- ImputeEOF(data = M, max.eof = 5)
test_that("Works with matrix format", {
expect_equal(is.matrix(M.imputed), TRUE)
expect_equal(dim(M), dim(M.imputed))
expect_equal(all((M - M.imputed)[!is.na(M)] == 0), TRUE)
})
geopotential[, gh.impute := ImputeEOF(gh.gap ~ lat + lon | date, max.eof = 5, max.iter = 2000)]
test_that("returns ok if there's no missing values", {
expect_warning(gh <<- geopotential[, ImputeEOF(gh ~ lat + lon | date, max.eof = 5,
max.iter = 2000)],
"no missing values")
expect_equal(gh,
geopotential$gh)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.