Skip to content

Releases: JackEdTaylor/LexOPS

v0.3.1

28 Jul 13:07
Compare
Choose a tag to compare

Major Updates:

  • Removed vwr package dependency in Shiny app as package has been removed from CRAN, replacing code with stringdist functions. This may fix instances of the Shiny app failing to load.
  • Can now pass arguments via ... to control_for_map().

Minor Updates:

  • S3 object printing will print "?" if no splits defined.
  • Changed control_for_map() documentation to use stringdist instead of vwr.
  • More informative errors if no splits or controls are defined.
  • New tests for errors.
  • New tests for split_random().
  • New tests for passing arguments to control_for_map() via ....
  • New tests for effects of function calls order in pipeline.
  • Updated fontawesome icons in Shiny app.

v0.3.0

09 Jun 14:15
Compare
Choose a tag to compare

Major updates:

  • Added a new S3 class with a generic print function - printing objects output by split_by(), control_for(), and variants of these functions will now print a summary of the pipeline rather than the original dataframe.
  • Improved data compression for LexOPS::lexops (now uses xz).
  • Fixed rare bug which could sometimes cause an error if an iteration failed by returning the wrong object from the function.

Minor updates:

  • Added test for Euclidean weights from control_for_euc().
  • Default plots are now neater (avoid colour recycling and use clearer theme).

v0.2.7

28 Apr 17:29
Compare
Choose a tag to compare

Major updates:

  • Fixed the calculation of weighted Euclidean distance. Previous versions would have calculated the distance of weighted items from unweighted targets, rather than comparing the items and target in the same space. This has been fixed, and will change the results of any code using weights in euc_dists() or control_for_euc().
  • Implemented weighting standardisation in calculating Euclidean distances, so that c(1, 3), c(10, 30), and c(100.33, 300.99) are all equivalent to c(0.5, 1.5). This means that similar tolerances can be used when weighting schemes change. The standardisation is weights/mean(weights) so that sum(weights)==length(weights). Standardisation can be disabled by setting standardise_weights=FALSE.

Minor updates:

  • Updated the Euclidean distance vignette to reflect the changes made to weighting.
  • Added tests that weights and weight standardisation for Euclidean distance work as described.

v0.2.6

23 Apr 08:53
Compare
Choose a tag to compare

Minor updates:

  • Updated the hex sticker.
  • Updated the documentation to mention support for no id_col variable in set_options().
  • Simplified the readme.

v0.2.5

27 Jan 23:29
Compare
Choose a tag to compare

Major update:

  • Fixed a bug with the concatenation of calls to control_for_map() where some calls would be overwritten/ignored.

Minor update:

  • If id_col (defined in set_options()) is missing, the output will use row numbers to uniquely identify items.

v0.2.4

14 Dec 15:06
Compare
Choose a tag to compare

Minor updates:

  • Printing progress now happens every 5% rather than 10%, and uses carriage return
  • Printing progress in the Shiny app now matches console output exactly
  • The readme now uses a more accessible minimal example
  • Fixed typos
  • Renamed some files (but not functions)
  • Solved more tidyselect ambiguities
  • Updated citation in citEntry()

v0.2.3

27 Oct 17:19
Compare
Choose a tag to compare

Major updates:

  • Massive improvements in speed of generating matches, especially when using many controls. This comes from vectorising a key part of the generate() function. If you set the seed with set.seed() function, your pipeline may produce a different result now, as a result of this. If you set the seed with the seed function of generate(), the result for a given seed should stay the same.

Minor updates:

  • tidyselect ambiguity in generate() solved by using dplyr::all_of().
  • Shiny app will give more informative error message when reviewing filters but no filters are used.
  • Added citation for the LexOPS paper with citEntry().
  • Updated documentation for generate() to make sure the "inclusive" option for match_null is mentioned.

v0.2.2

19 Jul 12:37
Compare
Choose a tag to compare

Mostly minor update:

  • Fix bug where non-overlapping but non-linearly ordered levels in split_by() (e.g. 1:2 ~ 5:6 ~ 3:4) would be incorrectly detected as overlapping and give an error
  • Properly export the walrus operator (rlang::`:=`) for quasiquotation in functions
  • Simplify and correct typos in documentation
  • Restyle the links in the info tab of the shiny app

v0.2.1

12 May 11:48
Compare
Choose a tag to compare

The two largest changes for this update are:

  • Manual cond_col assignment is now done in the set_options() function rather than in individual functions.
  • If overlapping splits are used for a double variable an error is thrown, rather than reading the splits incorrectly.
  • plot_sample() now includes the generated stimuli in the underlying distribution. At small Ns this makes little difference, but at large Ns ensures that the high representativeness is actually represented.
  • generate() now allows the user to silence console output with the silent argument
  • A new vignette on participant selection has been added (rendered version available here: https://jackedtaylor.github.io/LexOPSdocs/vignettes/participant-selection.html)

Other changes are:

  • Fixed typos
  • Prettified documentation
  • Added tests of reproducibility using random seeds for generate()
  • Added test of control_for_euc()
  • Tests are now run with console output from generate() suppressed

v0.2.0

06 Feb 19:38
Compare
Choose a tag to compare

This version has several major additions and improvements on previous versions.

The following are small but potentially breaking changes:

  • For non-lexops datasets, string_col has been replaced with id_col, which only needs to be specified once, in the set_options() function. The vignette on Custom Data has been updated to give an example of this. Existing code using the string_col argument at any point now requires LexOPS version < 0.2.0

These are changes which mostly improve functionality, and are very unlikely to break any existing code:

  • LexOPS now has a hex sticker (proudly displayed in the readme and shiny app)!
  • euc_dists() now allows the user to give specific scaling options, and give different weights to variables.
  • control_for_euc has been added, as a function that can control for Euclidean distance, with support for scaling and weighting options.
  • A vignette has been added explaining how Euclidean distance can be a useful measure in generating stimuli.
  • Can now set match_null = "inclusive" in generate(), such that all conditions are within a given tolerance of each other, rather than relative to one condition.
  • The plot_sample() function has been added, for visualising the density of variables for generated stimuli relative to the bank of possible candidates.
  • long_format() can now return unused candidates.
  • The existing vignettes have been improved to demonstrate concepts more clearly.
  • plot_design() now has an option, force. When set to TRUE, this removes the need for LexOPS attributes in df, so that you can plot the designs of non-LexOPS generated stimuli lists if in a similar format.
  • Increased allowed file upload size in the Shiny app to 50 MB.
  • BNC.All variables are now fully supported by the corpus recoding and cite functions.
  • First-stab unit tests have been added, depending on testthat.