Skip to content
This repository has been archived by the owner on Apr 26, 2023. It is now read-only.

Commit

Permalink
Merge pull request #41 from JuliaPOMDP/Missings
Browse files Browse the repository at this point in the history
fixed parallel simulator to work with latest DataFrames
  • Loading branch information
zsunberg committed Dec 5, 2017
2 parents 48808be + b0ce03f commit 33ebb21
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion REQUIRE
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ Iterators
ProgressMeter
Distributions
StatsBase 0.15
DataFrames 0.1 0.11
DataFrames 0.1
20 changes: 10 additions & 10 deletions src/simulators/parallel.jl
Original file line number Diff line number Diff line change
Expand Up @@ -191,38 +191,38 @@ append_metadata(d::Dict, metadata::Dict) = merge!(d, metadata)
metadata_as_pairs(s::Sim) = convert(Array{Any}, collect(s.metadata))

function create_dataframe(lines::Vector)
master = Dict{Symbol, DataArray}()
master = Dict{Symbol, AbstractVector}()
for line in lines
push_line!(master, line)
end
return DataFrame(master)
end

function _push_line!(d::Dict{Symbol, DataArray}, line)
function _push_line!(d::Dict{Symbol, AbstractVector}, line)
if isempty(d)
len = 0
else
len = length(first(values(d)))
end
for (key, val) in line
if !haskey(d, key)
d[key] = DataArray(typeof(val), len)
d[key] = Array{Any}(len)
end
data = d[key]
if !(typeof(val) <: eltype(data))
d[key] = convert(DataArray{Any,1}, data)
d[key] = convert(Array{Any,1}, data)
end
push!(d[key], val)
end
for da in values(d)
if length(da) < len + 1
push!(da, NA)
push!(da, missing)
end
end
return d
end
push_line!(d::Dict{Symbol, DataArray}, line::Dict) = _push_line!(d, line)
push_line!(d::Dict{Symbol, DataArray}, line::DataFrame) = _push_line!(d, n=>first(line[n]) for n in names(line))
push_line!(d::Dict{Symbol, DataArray}, line::AbstractVector) = _push_line!(d, line)
push_line!(d::Dict{Symbol, DataArray}, line::Tuple) = _push_line!(d, line)
push_line!(d::Dict{Symbol, DataArray}, line::Pair) = _push_line!(d, (line,))
push_line!(d::Dict{Symbol, AbstractVector}, line::Dict) = _push_line!(d, line)
push_line!(d::Dict{Symbol, AbstractVector}, line::DataFrame) = _push_line!(d, n=>first(line[n]) for n in names(line))
push_line!(d::Dict{Symbol, AbstractVector}, line::AbstractVector) = _push_line!(d, line)
push_line!(d::Dict{Symbol, AbstractVector}, line::Tuple) = _push_line!(d, line)
push_line!(d::Dict{Symbol, AbstractVector}, line::Pair) = _push_line!(d, (line,))

0 comments on commit 33ebb21

Please sign in to comment.