cj()
now imposes class "cj_df" ondata
to preserve attributes during subsetting.
- Added function
cj_table()
, which can be useful in communicating the set of features and levels used in the design as a data frame (e.g,. usingknitr::kable(cj_table(data, ~ feat1 + feat2))
). - Renamed functions
props()
->cj_props()
andfreqs()
tocj_freqs()
for API consistency.
- Added function
cj_df()
, which provides a modified data frame class ("cj_df") that preserves variable "label" attributes when subsetting. - Built-in datasets
immigration
andtaxes
gain a "cj_df" class. cj_tidy()
now returns objects of classc("cj_df", "data.frame")
.
- Added function
cj_tidy()
to tidy a "wide" respondent-length conjoint dataset into a "long" respondenttaskalternative-length dataset. An example dataset,wide_conjoint
, is provided for examples and testing.
- First stable release.
- Completed functionality of
amce_diffs()
, limiting it to work with unconstrained designs. (#6) - Added tests for accuracy of AMCEs in two-way constrained and fully unconstrained designs.
- Added support for constrained designs (when two-way constraints are present). (#6)
- Removed margins dependency, leaving only linear probability model support.
- Added another example datast,
taxes
, from Ballard-Rosa et al. (2016). - Renamed
hainmueller
dataset toimmigration
.
- Expanded test suite to cover survey-weighted data. Note:
cj_anova()
currently does not work with weighted data due to a bug insurvey::anova.svyglm()
. - Cleaned up internal code for consistency.
- Added 'statistic' column to function outputs.
- Variances returend by
amce_diffs()
now respect clustering. (#9)
- Fixed a factor ordering issue in
mm_diffs()
. - Added tests of numeric accuracy of estimates for all main functions.
- Added new function
mm_diffs()
for calculating differences in marginal means.
mm()
gains anh0
argument to specify a null hypothesis values so that z statistics and p-values are meaningful.- Cleaned up documentation and expanded 'Introduction' vignette, moving README content to there.
- Require survey version 0.33 (for
family
argument). - Added a basic test suite. (#4)
- Added
amce_diffs()
andamce_anova()
functions to assess differences in AMCEs by a grouping variable. - Removed some grouping warnings from
plot()
methods. (#8)
- Fixed a bug in the creation of
svydesign()
objects that was generating incorrect variance estimates. - Fully imported ggplot2 and ggstance.
- Added
props()
function to calculate display proportions for features or combinations of features (e.g., for examining constrained designs). Updated documentation accordingly. (#2) - Expanded Introduction vignette with examples of a number of diagnostics. (#2)
- Added
amce_by_reference()
function to examine sensitivity of results to choice of reference category. (#2)
- Changed the
level
argument toalpha
to avoid ambiguity with "levels" in the "feature level" sense used in the package (as opposed to the intended alpha or significance level). - Added a
level_order
argument tofreqs()
,mm()
, andamce()
that specifies whether feature levels are ordered ascending in the output or descending. This is mostly only useful for plotting to specify whether the levels within each feature should be ordered with lower factor levels at the top ("ascending") or at the bottom ("descending") of the plot. (#1) cj()
gains aby
argument, which enables subgroup analyses, for example to investigate profile spillover effects or analyses by subsets of respondents. (#3)- Added vignettes: "Introduction" and "Reproducing Hainmueller et al. (2014)". The latter is a work in progress. (#7)
- Changed name of
freq()
tofreqs()
and prefixed class names of return values from all functions withcj_*
. - Added
feature_order
argument to all functions to regulate display order. - Fixed a bug in the handling of
header_fmt
inplot()
. - Updated README with example of
freqs()
.
- Initial release.