Передача NA в R с использованием пакета JULIA RCall

У меня проблема с передачей NA в массиве R для пакета imputeTS.

Предположим, у меня есть этот массив:

a = Any[1, 2, 3, NaN, 5]

и я хочу передать его этому:

R"""
b <- na_seadec($a, algorithm = "kalman", find_frequency = TRUE, maxgap = Inf)
"""

NaN не преобразуется в NA автоматически. Как я могу передать в RCall точное значение NA?

1 ответ

Решение

NaN в Юлии будет NaN в Р. Если хотите NA в R вы должны использовать missing в Юлии:

julia> x = [1, 2, NaN]
3-element Array{Float64,1}:
   1.0
   2.0
 NaN

julia> y = [1, 2, missing]
3-element Array{Union{Missing, Int64},1}:
 1
 2
  missing

julia> R"$x"
RObject{RealSxp}
[1]   1   2 NaN


julia> R"$y"
RObject{IntSxp}
[1]  1  2 NA

Вы можете найти подробности в этом разделе руководства Julia.

А вот пример сеанса:

julia> R"library(imputeTS)"
RObject{StrSxp}
[1] "imputeTS"  "stats"     "graphics"  "grDevices" "utils"     "datasets"
[7] "methods"   "base"


julia> a = [1,2,3,missing,5]
5-element Array{Union{Missing, Int64},1}:
 1
 2
 3
  missing
 5

julia> R"""
       b <- na_seadec($a, algorithm = "kalman", find_frequency = TRUE, maxgap = Inf)
       """
┌ Warning: RCall.jl: Warning in na_seadec(`#JL`$a, algorithm = "kalman", find_frequency = TRUE,  :
│   No seasonality information for dataset could be found, going on without decomposition.
│               Setting find_frequency=TRUE might be an option.
└ @ RCall ~/.julia/packages/RCall/g7dhB/src/io.jl:113
RObject{RealSxp}
[1] 1 2 3 4 5
Другие вопросы по тегам