Running examples in 'miceFast-Ex.R' failed
The error most likely occurred in:

> ### Name: fill_NA
> ### Title: 'fill_NA' function for the imputations purpose.
> ### Aliases: fill_NA fill_NA.data.frame fill_NA.data.table fill_NA.matrix
> 
> ### ** Examples
> 
> library(miceFast)
> library(dplyr)

Attaching package: 'dplyr'

The following objects are masked from 'package:stats':

    filter, lag

The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union

> library(data.table)

Attaching package: 'data.table'

The following objects are masked from 'package:dplyr':

    between, first, last

The following object is masked from 'package:base':

    %notin%

> ### Data
> # airquality dataset with additional variables
> data(air_miss)
> ### Intro: dplyr
> # IMPUTATIONS
> air_miss <- air_miss %>%
+   # Imputations with a grouping option (models are separately assessed for each group)
+   # taking into account provided weights
+   group_by(groups) %>%
+   do(mutate(., Solar_R_imp = fill_NA(
+     x = .,
+     model = "lm_pred",
+     posit_y = "Solar.R",
+     posit_x = c("Wind", "Temp", "Intercept"),
+     w = .[["weights"]]
+   ))) %>%
+   ungroup() %>%
+   # Imputations - discrete variable
+   mutate(x_character_imp = fill_NA(
+     x = .,
+     model = "lda",
+     posit_y = "x_character",
+     posit_x = c("Wind", "Temp")
+   )) %>%
+   # logreg was used because almost log-normal distribution of Ozone
+   # imputations around mean
+   mutate(Ozone_imp1 = fill_NA(
+     x = .,
+     model = "lm_bayes",
+     posit_y = "Ozone",
+     posit_x = c("Intercept"),
+     logreg = TRUE
+   )) %>%
+   # imputations using positions - Intercept, Temp
+   mutate(Ozone_imp2 = fill_NA(
+     x = .,
+     model = "lm_bayes",
+     posit_y = 1,
+     posit_x = c(4, 6),
+     logreg = TRUE
+   )) %>%
+   # multiple imputations (average of x30 imputations)
+   # with a factor independent variable, weights and logreg options
+   mutate(Ozone_imp3 = fill_NA_N(
+     x = .,
+     model = "lm_noise",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .[["weights"]],
+     logreg = TRUE,
+     k = 30
+   )) %>%
+   mutate(Ozone_imp4 = fill_NA_N(
+     x = .,
+     model = "lm_bayes",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .[["weights"]],
+     logreg = TRUE,
+     k = 30
+   )) %>%
+   group_by(groups) %>%
+   do(mutate(., Ozone_imp5 = fill_NA(
+     x = .,
+     model = "lm_pred",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .[["weights"]],
+     logreg = TRUE
+   ))) %>%
+   do(mutate(., Ozone_imp6 = fill_NA_N(
+     x = .,
+     model = "pmm",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .[["weights"]],
+     logreg = TRUE,
+     k = 20
+   ))) %>%
+   ungroup() %>%
+   # Average of a few methods
+   mutate(Ozone_imp_mix = rowMeans(select(., starts_with("Ozone_imp")))) %>%
+   # Protecting against collinearity or low number of observations - across small groups
+   # Be carful when using a grouping option
+   # because of lack of protection against collinearity or low number of observations.
+   # There could be used a tryCatch(fill_NA(...),error=function(e) return(...))
+   group_by(groups) %>%
+   do(mutate(., Ozone_chac_imp = tryCatch(
+     fill_NA(
+       x = .,
+       model = "lda",
+       posit_y = "Ozone_chac",
+       posit_x = c(
+         "Intercept",
+         "Month",
+         "Day",
+         "Temp",
+         "x_character_imp"
+       ),
+       w = .[["weights"]]
+     ),
+     error = function(e) .[["Ozone_chac"]]
+   ))) %>%
+   ungroup()
> 
> # Sample of results
> air_miss[which(is.na(air_miss[, 1]))[1:5], ]
# A tibble: 5 × 23
  Ozone Solar.R  Wind  Temp   Day Intercept index weights groups x_character
  <dbl>   <dbl> <dbl> <dbl> <dbl>     <dbl> <dbl>   <dbl> <fct>  <chr>      
1    NA      NA  14.3    56     5         1     5   0.995 5      <NA>       
2    NA     194   8.6    69    10         1    10   0.995 5      (140,210]  
3    NA      66  16.6    57    25         1    25   1.01  5      (0,70]     
4    NA     266  14.9    58    26         1    26   1.00  5      (210,280]  
5    NA      NA   8      57    27         1    27   1.000 5      <NA>       
# ℹ 13 more variables: Ozone_chac <chr>, Ozone_f <fct>, Ozone_high <lgl>,
#   Solar_R_imp <dbl>, x_character_imp <chr>, Ozone_imp1 <dbl>,
#   Ozone_imp2 <dbl>, Ozone_imp3 <dbl>, Ozone_imp4 <dbl>, Ozone_imp5 <dbl>,
#   Ozone_imp6 <dbl>, Ozone_imp_mix <dbl>, Ozone_chac_imp <chr>
> 
> ### Intro: data.table
> # IMPUTATIONS
> # Imputations with a grouping option (models are separately assessed for each group)
> # taking into account provided weights
> data(air_miss)
> setDT(air_miss)
> air_miss[, Solar_R_imp := fill_NA_N(
+   x = .SD,
+   model = "lm_bayes",
+   posit_y = "Solar.R",
+   posit_x = c("Wind", "Temp", "Intercept"),
+   w = .SD[["weights"]],
+   k = 100
+ ), by = .(groups)] %>%
+   # Imputations - discrete variable
+   .[, x_character_imp := fill_NA(
+     x = .SD,
+     model = "lda",
+     posit_y = "x_character",
+     posit_x = c("Wind", "Temp", "groups")
+   )] %>%
+   # logreg was used because almost log-normal distribution of Ozone
+   # imputations around mean
+   .[, Ozone_imp1 := fill_NA(
+     x = .SD,
+     model = "lm_bayes",
+     posit_y = "Ozone",
+     posit_x = c("Intercept"),
+     logreg = TRUE
+   )] %>%
+   # imputations using positions - Intercept, Temp
+   .[, Ozone_imp2 := fill_NA(
+     x = .SD,
+     model = "lm_bayes",
+     posit_y = 1,
+     posit_x = c(4, 6),
+     logreg = TRUE
+   )] %>%
+   # model with a factor independent variable
+   # multiple imputations (average of x30 imputations)
+   # with a factor independent variable, weights and logreg options
+   .[, Ozone_imp3 := fill_NA_N(
+     x = .SD,
+     model = "lm_noise",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .SD[["weights"]],
+     logreg = TRUE,
+     k = 30
+   )] %>%
+   .[, Ozone_imp4 := fill_NA_N(
+     x = .SD,
+     model = "lm_bayes",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .SD[["weights"]],
+     logreg = TRUE,
+     k = 30
+   )] %>%
+   .[, Ozone_imp5 := fill_NA(
+     x = .SD,
+     model = "lm_pred",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .SD[["weights"]],
+     logreg = TRUE
+   ), .(groups)] %>%
+   .[, Ozone_imp6 := fill_NA_N(
+     x = .SD,
+     model = "pmm",
+     posit_y = "Ozone",
+     posit_x = c("Intercept", "x_character_imp", "Wind", "Temp"),
+     w = .SD[["weights"]],
+     logreg = TRUE,
+     k = 10
+   ), .(groups)] %>%
+   # Average of a few methods
+   .[, Ozone_imp_mix := apply(.SD, 1, mean), .SDcols = Ozone_imp1:Ozone_imp6] %>%
+   # Protecting against collinearity or low number of observations - across small groups
+   # Be carful when using a data.table grouping option
+   # because of lack of protection against collinearity or low number of observations.
+   # There could be used a tryCatch(fill_NA(...),error=function(e) return(...))
+ 
+   .[, Ozone_chac_imp := tryCatch(
+     fill_NA(
+       x = .SD,
+       model = "lda",
+       posit_y = "Ozone_chac",
+       posit_x = c(
+         "Intercept",
+         "Month",
+         "Day",
+         "Temp",
+         "x_character_imp"
+       ),
+       w = .SD[["weights"]]
+     ),
+     error = function(e) .SD[["Ozone_chac"]]
+   ), .(groups)]
Error in `[.data.table`(air_miss, , `:=`(Solar_R_imp, fill_NA_N(x = .SD,  : 
  attempt access index 13/13 in VECTOR_ELT
Calls: %>% -> [ -> [.data.table
Execution halted