diff --git a/src/TSFrame.jl b/src/TSFrame.jl index 94a5426..705794d 100644 --- a/src/TSFrame.jl +++ b/src/TSFrame.jl @@ -398,7 +398,7 @@ end # FIXME: use Metadata.jl function TSFrame(coredata::AbstractArray{T,2}; colnames=:auto, issorted = false, copycols = true) where {T} index_vals = collect(Base.OneTo(size(coredata)[1])) - df = DataFrame(coredata, colnames, copycols=true) + df = DataFrame(coredata, colnames, copycols=copycols) TSFrame(df, index_vals; issorted = issorted, copycols = copycols) end @@ -410,7 +410,7 @@ end function TSFrame(IndexType::DataType; n::Int=1, issorted = false, copycols = true) (n>=1) || throw(DomainError(n, "n should be >= 1")) df = DataFrame(fill([],n), :auto) - df.Index = IndexType[] + insertcols!(df, 1, :Index => IndexType[]; after = false, copycols = false) TSFrame(df; issorted = issorted, copycols = copycols) end diff --git a/src/rollapply.jl b/src/rollapply.jl index ce68940..3cf0d3a 100644 --- a/src/rollapply.jl +++ b/src/rollapply.jl @@ -84,7 +84,7 @@ function rollapply(ts::TSFrame, fun::Function, windowsize::Int; bycolumn=true) if bycolumn DataFrames.rename!(res, [col => string("rolling_", col, "_", Symbol(fun)) for col in propertynames(res)]) - res[:, :Index] = TSFrames.index(ts)[windowsize:end] + DataFrames.insertcols!(res, 1, :Index => TSFrames.index(ts)[windowsize:end]; after = false, copycols = false) return TSFrame(res) else res_df = DataFrame(Index=TSFrames.index(ts)[windowsize:end], outputs=res)