Releases: JackEdTaylor/LexOPS
Releases · JackEdTaylor/LexOPS
v0.3.1
Major Updates:
- Removed
vwr
package dependency in Shiny app as package has been removed from CRAN, replacing code withstringdist
functions. This may fix instances of the Shiny app failing to load. - Can now pass arguments via
...
tocontrol_for_map()
.
Minor Updates:
- S3 object printing will print "?" if no splits defined.
- Changed
control_for_map()
documentation to usestringdist
instead ofvwr
. - 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
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 usesxz
). - 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
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()
orcontrol_for_euc()
. - Implemented weighting standardisation in calculating Euclidean distances, so that
c(1, 3)
,c(10, 30)
, andc(100.33, 300.99)
are all equivalent toc(0.5, 1.5)
. This means that similar tolerances can be used when weighting schemes change. The standardisation isweights/mean(weights)
so thatsum(weights)==length(weights)
. Standardisation can be disabled by settingstandardise_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
Minor updates:
- Updated the hex sticker.
- Updated the documentation to mention support for no
id_col
variable inset_options()
. - Simplified the readme.
v0.2.5
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 inset_options()
) is missing, the output will use row numbers to uniquely identify items.
v0.2.4
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
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 withset.seed()
function, your pipeline may produce a different result now, as a result of this. If you set the seed with theseed
function ofgenerate()
, the result for a given seed should stay the same.
Minor updates:
- tidyselect ambiguity in
generate()
solved by usingdplyr::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 formatch_null
is mentioned.
v0.2.2
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
The two largest changes for this update are:
- Manual
cond_col
assignment is now done in theset_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 thesilent
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
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 withid_col
, which only needs to be specified once, in theset_options()
function. The vignette on Custom Data has been updated to give an example of this. Existing code using thestring_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"
ingenerate()
, 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 toTRUE
, this removes the need for LexOPS attributes indf
, 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
.