-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Labels
Description
End goal of #109
Preliminary work completed in example here: https://juliaactuary.org/tutorials/mortalitytablesdataframe/
"""
long(m::MortalityTable)
Return an array of tuples containing `issue_age`,`attained_age`,`duration`,`select` rate, and `ultimate` rate.
"""
function long(m::MortalityTables.SelectUltimateTable)
earliest_age = min(firstindex(m.select),firstindex(m.ultimate))
last_age = max(lastindex(m.select),lastindex(m.ultimate))
table = map(earliest_age:last_age) do issue_age
map(issue_age:last_age) do attained_age
# use `get` to provide default missing value
ultimate = get(m.ultimate,attained_age,missing)
if issue_age <= lastindex(m.select)
select = get(m.select[issue_age],attained_age,missing)
else
select = missing
end
duration = attained_age - issue_age + 1
(;issue_age,attained_age, duration, select,ultimate)
end
end
vcat(table...)
end
"""
long(m::MortalityTable)
Return an array of tuples containing `issue_age`,`attained_age`,`duration`,`select` rate, and `ultimate` rate.
"""
function long(m::MortalityTables.UltimateTable)
earliest_age = firstindex(m.ultimate)
last_age = lastindex(m.ultimate)
table = map(earliest_age:last_age) do issue_age
map(issue_age:last_age) do attained_age
# use `get` to provide default missing value
ultimate = get(m.ultimate,attained_age,missing)
select = missing
duration = attained_age - issue_age + 1
(;issue_age,attained_age, duration, select,ultimate)
end
end
vcat(table...)
endTo-dos
- tests
- is
longthe right function name? - what about irregular tables (Irregular tables #107)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
New features