Создайте пустой многомерный массив типа объединения в Julia - PullRequest
0 голосов
/ 29 сентября 2018

Используя Джулию, я пытаюсь инициализировать пустой массив типа Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String} для работы с файлами Excel.Я пробовал zeros(Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String}, rows, cols), но это не сработало, поскольку zeros не имеет такого атрибута.Я также попытался Array{Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String}, rows, cols}, но это вернул тип, а не пустой массив.Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Подборка предыдущих ответов и комментариев дает в Юлии 1.0.0:

julia> using Dates

julia> a = Array{Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String}, 1}(undef, 3)
3-element Array{Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String},1}:
 #undef
 #undef
 #undef

julia> a[1] = today()
2018-09-30

julia> a[2] = julian2datetime(2437500)
1961-07-19T12:00:00

julia> a[3] = "this is a test string"
"this is a test string"

julia> a
3-element Array{Union{Missing, Bool, Float64, Int64, Date, DateTime, Time, String},1}:
 2018-09-30
 1961-07-19T12:00:00
 "this is a test string"
0 голосов
/ 29 сентября 2018

Вот быстрый способ

julia> a = Array{Union{Missing, Bool, Float64, Int64, String},1}(missing,3)
3-element Array{Union{Missing, Bool, Float64, Int64, String},1}:
 missing
 missing
 missing

julia> a[2] = 5
5

julia> a
3-element Array{Union{Missing, Bool, Float64, Int64, String},1}:
  missing
 5
  missing

И если вам нужен 2D-массив, вы можете сделать это

julia> a = Array{Union{Missing, Bool, Float64, Int64, String},2}(missing,3,4)
3×4 Array{Union{Missing, Bool, Float64, Int64, String},2}:
 missing  missing  missing  missing
 missing  missing  missing  missing
 missing  missing  missing  missing

julia> a[2,3]=5
5

julia> a
3×4 Array{Union{Missing, Bool, Float64, Int64, String},2}:
 missing  missing   missing  missing
 missing  missing  5         missing
 missing  missing   missing  missing

Чтобы описать электронную таблицу EXCEL, «отсутствует» может не бытьподходящее слово «ничто» может быть лучше.

julia> a = Array{Union{Nothing, Bool, Float64, Int64, String},2}(nothing,3,4)
3×4 Array{Union{Nothing, Bool, Float64, Int64, String},2}:
 nothing  nothing  nothing  nothing
 nothing  nothing  nothing  nothing
 nothing  nothing  nothing  nothing
...