Skip to contents

Sorts a panel data set by unit id and then time period. `data` is copied before sorting, so the object passed in is left unmodified. For large panels where copying is undesirable, sort in place instead with `data.table::setorderv(data, c(idname, tname))`.

Usage

sort_panel(data, idname, tname)

Arguments

data

data.frame (or data.table) used in function

idname

unique id

tname

time period name

Value

`data` sorted by `(idname, tname)`, with the same class (`data.frame` or `data.table`) as `data`

Examples

id <- rep(sample(1:5), each = 2) # units in a shuffled, unsorted order
t <- rep(c(2, 1), 5) # each unit's own periods out of time order
dta <- data.frame(id = id, t = t, y = rnorm(10))
dta <- sort_panel(dta, idname = "id", tname = "t")