panelr 0.7.1

Bugfixes:

panelr 0.7.0

Lots of new stuff! CRAN coming soon as well.

panelr 0.6.0

New stuff: * There is now a vignette to walk users through the process of reshaping panel data. * There is now more sophisticated handling of interactions between time-varying variables in line with the recommendations of Giesselmann and Schmidt-Catran (2018). * are_varying() can now also assess individual-level variation, so using the type = "individual" argument you can instead assess variables like age that vary over time but change equally for every case. * wbm() can now handle transformed dependent variables (e.g. log(y)). Transformations on the right-hand side of the equation were always supported. * panel_data objects are now quite a bit more difficult to break by accidentally subsetting the ID and wave columns out of existence. Now, subsetting via data[], select() and implicitly via transmute() will never remove the ID and wave columns. You will also be warned if you arrange() a panel_data object since it will generally break lag() functions. * panel_data objects now store information about what the periods are for the data, which you can access with the get_periods() function. For example, if the waves in your data are the numbers 1 through 7, that’s what you’ll get. This is more useful when the periods are irregular, such as if the waves are the years of a biennial survey.

Bugfixes: * The way lagged predictors are mean-centered is now consistent with the conventional fixed effects estimator. Results may change non-trivially due to this change. Previously, the mean used for mean-centering was based on all waves of data, but now it is based on all waves except the number of lags away from the latest wave. * Detrending has also been tweaked to work comparably with the changes to the mean-centering. * You now can add the wave variable to wbm() in the formula without running into cryptic errors. * Fixed a problem in which transformed variables (like lag(x)) could not be included as a user-specified random effect. Pre-0.5.0, these could be included if they were surrounded by backticks, but now that hack is unnecessary and does not work. * make_wb_data() is now updated to work with other internal updates introduced in 0.5.0. * long_panel() was never really working right when the source data’s labels were located at the beginning (i.e., label_location = "beginning"). It is now much more robust. * wbm()’s wave.factor argument had become non-functional for some time but is now fixed.

panelr 0.5.0

Starting to polish things up for CRAN.

Key changes:

panelr 0.4.1

This version has switched the default degrees of freedom calculation for linear wbm models to Satterthwaite, which are more computationally efficient and less prone to breaking R. They are also calculated on a per-variable basis. Kenward-Roger standard errors and degrees of freedom can be requested with the t.df = "Kenward-Roger" argument.

panelr 0.4.0

This version includes some major under-the-hood changes, converting from an S3 object representation to S4. This allows the wbm objects to formally be extensions of merMod objects, meaning any method that could apply to wbm but isn’t formally implemented will fall back to the merMod implementation.

The panel_data class no longer hardcodes the id and wave variables as “id” and “wave”. Instead, they remain whatever they are named and the panelr functions will simply know which variables are these special ones.

A new function, make_wb_data, allows users to do the data prepping that wbm does internally without having to use all the modeling choices made by wbm.

panelr 0.3.4

A series of helper functions have been added to make wbm objects behave more like regular model objects. Now update, formula, terms, model.frame, coef, predict, and several more are defined for wbm.

The summary function for wbm has been refined and had some minor bugs squished.

panelr 0.3.3

More tweaks to widen_panel, giving users the option to opt out of the feature introduced in 0.3.2 that stores data about varying and constant variables from long_panel. Since poor data labeling in the original wide data can cause those stored attributes to be wrong, users can use ignore.attributes = TRUE with widen_panel to force checking for varying variables with are_varying. Users can now also supply a vector of varying variables, similar to reshape in base R.

panelr 0.3.2

This small update adds an enhancement to long_panel and widen_panel. If you start with wide data, convert it to long format, and then want to convert back to wide, the panel_data object in long format will cache information about the variables to drastically speed up widen_panel when you run it again.

Additionally, are_varying was sped up by about 50%, though it slows widen_panel down for data with many variables.

panelr 0.3.1

Tiny bugfixes:

panelr 0.3.0

New functions:

panelr 0.2.0

New feature:

panelr 0.1.1

panelr 0.1.0