tbeason / FamaFrenchData.jl

Julia package providing access to the Fama-French data available on the Ken French Data Library
Other
9 stars 0 forks source link

parsing historical book equity #29

Open tbeason opened 3 years ago

tbeason commented 3 years ago

simple function to use

using DelimitedFiles, DataFrames

function parse_moodys(fn; nomissing::Bool=true)
    inputarr = readdlm(fn)
    N,K = size(inputarr)
    permnos = Int.(inputarr[:,1])
    firstyear = Int.(inputarr[:,2])
    lastyear = Int.(inputarr[:,3])
    y1 = minimum(firstyear)
    y2 = y1 + K - 4
    yrs = y1:y2
    dfvec = Vector{DataFrame}(undef,N)

    for i in 1:N
        p = convert(Int,inputarr[i,1])
        vals = vec(inputarr[i,4:end])
        if nomissing
            vals = replace(vals, -99.99 => missing, -99.999 => missing)
        end
        dfvec_i = DataFrame(PERMNO=p,YEAR=yrs,MOODYSBE=vals)
        nomissing && dropmissing!(dfvec_i)

        dfvec[i] = dfvec_i
    end
    return vcat(dfvec...)
end