This minimal update provides a fix for incorrect handling of
user-defined missing values in the lsa.data.diag
function.
lsa.data.diag
reports incorrect statistics with
user-defined missing values in some studies. Thanks to Daniel
Gustafsson.This update replaces the F-statistic with Wald F-statistic in linear regression and fixes a bug in all analysis functions that crashes them when TALIS 3S data is used due to misidentified replicate weights.
lsa.lin.reg
was replaced with Wald
F-statistic as a suitable estimator for clustered data. The chi-square
statistic is also provided.This update fixes a number of issues in the graphing capabilities of the descriptive functions and the GUI. In addition to these fixes, the GUI has received various visual improvements and optimizations. The support for ICCS 2022 cycle has been finalized.
When switching between tabs in the GUI, the tab being switched to scrolls down to the position of the previous tab. Now the tabs are scrolled up to their top when the user switches between tabs.
The GUI part for lsa.convert.data
does reports an
error for unequal length of file names in folder for PISA 2018.
The GUI part for lsa.convert.data
does not show
newly released SAV files for PISA 2018.
The GUI part for lsa.convert.data
does not show the
files in the inp.folder
for PISA 2022.
Following some changes in package ggplot2
, the
lsa.pcts.means
, lsa.prctls
and
lsa.bench
crash when graphs = TRUE
.
Following the latest changes in R on POSIXCt date formats,
lsa.pcts.means
, lsa.prctls
and
lsa.bench
were reporting incorrect total times.
Various code changes following the update of R to version 4.4.0.
Finalized support for the ICCS 2022 cycle.
Small rearrangement of the graphical elements in the variable dictionaries’ tab in the GUI to make it consistent with the rest of the tabs.
Improved the welcoming screen animation on loading the GUI.
Various visual improvements and optimizations in the GUI:
Positioning of elements in the workspace;
Spacing between elements;
Showing and hiding elements depending on user selections;
Issuing warning messages;
Navigation between fields.
Improved documentation.
This update fixes a number of issues, completely revamps the conversion function, updates the conversion of PISA 2015 files, adds support for PISA 2022 and a studies, and countries’ participation in studies and cycles reference table in the GUI help section.
lsa.convert.data
crashes when converting PISA 2015
data and missing.to.NA = FALSE
.
lsa.convert.data
crashes when converting PISA for
Development 2019 out of school files.
lsa.convert.data
converts TALIS 3S 2018 ISCED 0.2 as
SITES 2006 data.
lsa.convert.data
does not save converted
.RData
files when converting PISA data prior to its 2015
cycle with missing.to.NA = TRUE
.
lsa.bench
crashes when benchmarks are not provided
by the user, not using the default benchmarks.
lsa.crosstabs
crashes when one or more of the
countries have just one valid value in the bckg.row.var
or
bckg.col.var
(i.e. insufficient data).
lsa.bin.log.reg
crashes when one or more of the
countries does not have valid data in the analysis variables.
Following the last changes of how R handles the POSIX dates and
times, lsa.convert.data
, lsa.bench
,
lsa.crosstabs
, lsa.corr
,
lsa.lin.reg
and lsa.bin.log.reg
report
incorrect total times of all operations.
Following the latest changes in the shiny
’s package
update to version 1.8.0, when using categorical background variables in
the GUI, lsa.lin.reg
and lsa.bin.log.reg
do
not add the contrasts and reference categories in the syntax and do not
update user selections.
The lsa.convert.data
function was rewritten (almost)
from scratch replacing the foreign
package with
haven
when importing SPSS files. The conversion is much
more efficient now and has a better handling of the user-defined missing
values. The previous version is now deprecated and is available as
lsa.convert.data2
(to be removed in June of 2025).
Added support for student test timing files in PISA 2015.
Added support for the student financial literacy file in PISA 2015.
Added support for PISA 2022 data.
Various visual improvements and optimizations in the GUI.
Improved documentation.
This update focuses mainly on some critical issues that were introduced after the changes in the last versions of R and CRAN policies on package documentation.
When a file with school and teacher data merged is imported, the GUI crashes for all analysis functions.
The GUI does not recognize some populations’ files in different
studies when using the lsa.convert.data
function and
crashes.
Various improvements and optimizations in the GUI workfrlow for all data preparation and analysis functions, including showing and hiding elements depending on the user selections.
Improved documentation.
This update focuses on adding more functionality to the existing graph capabilities, bug fixes and overall improvement of the workflow, and updates existing features following updates of packages RALSA depends on. Saving syntaxes from the GUI now appends the new synatx to existing files instead of overwriting them.
lsa.convert.data
crashes when converting the TIMSS
1995 grade 4 ASA files. Thanks to Maximilian Brinkmann.
When converting datasets with lsa.convert.data
, some
of the variable labels contain unrecognized characters. Thanks to Falk
Brese.
When a factor variable has only one level, the “Variable levels” also include NA as a level.
After updates of the DT
package the panels
displaying the country and variable names changed to grey and the colors
of the selected rows changed.
In GUI with lsa.convert.data
the syntax is not
generated and cannot be executed when PISA (both pre-2015 and later)
files are used.
In GUI with lsa.recode.vars
the summary table of
recodings is printed in the GUI console, but if any NA values are in the
“Source_XXXXX” and “New_XXXXX” variable columns, the output is shifted
to the left and unreadable for these lines.
The descriptive statistics functions
(lsa.pcts.means
, lsa.prctls
,
lsa.bench
and lsa.crosstabs
) now have new
arguments that allow definition of custom x- and y-axis labels for the
plots. This has also been implemented in the GUI.
The lsa.crosstabs
function now has the possibility
to add custom axes’ labels in heat plots. Until now, the function used
the row and column variable names to label the axes. The custom axis
labels can be added using the graph.row.label
and
graph.col.label
arguments.
The lsa.pcts.means
function now has the possibility
to add custom axes’ labels in percentages of respondents within groups
and in means’ plots. Until now, the function used the last split and the
average variable(s) names to label the axes. The custom axis labels can
be added using the arguments perc.x.label
,
perc.x.label
, mean.x.labels
and
mean.y.labels
.
The lsa.bench
function now has the possibility to
add custom axes’ labels in plots of percentages of respondents within
performance groups and the mean for continuous variable, if specified.
Until now, the function used “Performance Group” and the PVs set name to
to label the axes for the percentage plots, and “Performance Group” and
the mean’s variable name to label the axes of the mean plot. The custom
axis labels can be added using the arguments perc.x.label
,
perc.x.label
, mean.x.label
and
mean.y.label
.
The lsa.prctls
function now has the possibility to
add custom axes’ labels in plots of percentages of respondents within
groups and percentiles for continuous variables. Until now, the function
used the last split variable name to label the axes for the percentage
plots, and “Percentiles” and the continuous variables’ names to label
the axes of the percentiles plot. The custom axis labels can be added
using the arguments perc.x.label
,
perc.x.label
, prctl.x.label
and
prctl.y.label
.
Added support for PIRLS 2021 data.
The GUI can now run in Rstudio without blocking the console and
the session can run and be used on its own. The GUI runs as a background
job. In case problems appear with the new way the GUI is started, use
ralsaGUIfailsafe()
instead of ralsaGUI()
function. This will start the GUI using the old methods, but the console
will be blocked.
The graphical functionality in lsa.pcts.means
,
lsa.prctls
, lsa.bench
and
lsa.crosstabs
has been updated after the
ggplot2
update to version 3.4.0 where the size
aesthetic has been replaced with linewidth
in line based
geoms.
lsa.vars.dict
now adds the levels’ numeric values
before the labels, as suggested by Falk Brese.
GUI with all functions. Following the updates of the
shiny
and DT
packages the lists of variables
lost their formatting (background color and selected rows color). These
are now recovered and when rows are selected the variable names and
labels are bolded.
The colors of the radio buttons and check boxes in the GUI have been changed to match the color scheme used in the rest of the application.
The behavior of the “Save syntax” button for all tabs in the GUI has been changed. When the file with the syntax already exists, the new syntax is appended to the end instead of overwriting the entire file. This is more convenient, as it allows to save all the syntax generated from different tabs in the GUI in a single file.
The definition of user-defined missing values in the “Recode variables” section in the GUI now uses semicolon as a delimiter.
Changed the icon for the “Exit” tab and button in the GUI.
The copyleft character in the footer of the GUI has been changed, now it is displayed properly.
Various improvements and optimizations in the GUI workfrlow.
Improved documentation.
This update focuses mainly on bugfixes and improvements in the GUI and its workflow, but also introduces some new features.
All analysis functions, as well lsa.data.diag
,
lsa.recode.vars
and lsa.vars.dict
crash with
an error message
Error in exists(all.vars(match.call())) : first argument has length > 1
when any of the arguments specifying analysis variables point to objects
which contain character vectors containing them. Thanks to Rodolfo
Ilizaliturri.
lsa.prctls
- The percentiles on the x-axis are not
properly added for every percentile computed. Thanks to Cecilia
Bjorkhammer.
print.lsa.data
- The custom print method for
lsa.data
blocks some common data.table
operations.
lsa.corr
- The function crashes when one of the
countries has all missing values for one or more variables passed to the
bckg.corr.vars
. A warning when this occurs was
added.
GUI with lsa.convert.data
- When data files only
from one country are available in the source folder, the quote at the
end of the path passed to inp.folder
in the syntax is not
closed and the syntax cannot be executed properly. Thanks to Gasper
Cankar.
GUI with lsa.merge.data
- When data files only from
one country are available in the source folder, the bracket at the end
of the list passed to file.types
is not closed and the
syntax cannot be executed properly. Thanks to multiple teachers during
series of workshops delivered in Slovenia.
GUI with lsa.recode.vars
- When new variable names
are defined, the table for the new variable labels still displays the
old variable names, as shown below. Thanks to Cecilia
Bjorkhammer.
GUI with lsa.data.diag
- When the working data set
is changed, series of errors are dropped in the R console
(missing value where TRUE/FALSE is needed
).
GUI with lsa.pcts.means
- When the working data set
is changed, an error is dropped in the R console
(Error in paste0: object 'Variables' not found
) and shown
in the interface.
GUI with lsa.prctls
- When the working data set is
changed, an error is dropped in the R console
(Error in if: argument is of length zero
) and shown in the
interface.
GUI with lsa.bench
- When a data set is loaded or
the working data set is changed, an error is dropped in the R console
(Error in paste0: object 'Variables' not found
).
GUI with lsa.crosstabs
- When a data set is loaded
or the working data set is changed, an error is dropped in the R console
(Error in if: argument is of length zero
).
GUI with lsa.corr
- When the working data set is
changed, an error is dropped in the R console
(Error in if: argument is of length zero
) and shown in the
GUI.
GUI with lsa.lin.reg
- When the working data set is
changed, errors are dropped in the R console
(Error in if: argument is of length zero
and
Warning: object 'Variables' not found
) and shown in the
GUI.
GUI with lsa.bin.log.reg
- When the working data set
is changed, errors are dropped in the R console
(Error in if: argument is of length zero
and
Warning: object 'Variables' not found
).
The lsa.crosstabs
function now has the possibility
to produce heatmap graphs (optional). The graphs are included in a
separate sheet in the MS Excel output file if
save.output = TRUE
. If save.output = FALSE
,
the graphs are added to the list output object in memory and can be
printed in R’s graphic device.
All GUI tabs for data preparation and analysis functions received “Save syntax” and “Copy syntax” buttons, as suggested by Erika Majoros.
Further work on graphics (lsa.crosstabs
,
lsa.bench
, lsa.pcts.means
,
lsa.prctls
):
All functions producing graphical representation of the results
now have controlled dpi depending on the number of
split.vars
to better fit the plots and their labels in
space;
The lsa.prctls
function now adds facets when the
number of split.vars
is greater than two to fix the issue
of dot, line and error bar positioning and overlapping on the plot and
improve readability.
Multiple fixes in GUI for better workflow.
In GUI with lsa.recode.vars
the “Old/New variable
names” table was merged with the “New variable labels” table. This
change was provoked by fixing the bug that the “New variable labels”
table was still showing the old variable names, as discovered by Cecilia
Björkhammer. Now the workflow is more intuitive.
Improved documentation.
lsa.pcts.means
- when many split variables are added,
in some countries some of the rows in the estimates are repeated
multiple times by the categories of the split variables.The lsa.pcts.means
, lsa.bench
and
lsa.prctls
functions now have the possibility to produce
graphs (optional). The graphs are included in a separate sheet in the MS
Excel output file if save.output = TRUE
. If
save.output = FALSE
, the graphs are added to the list
output object in memory and can be printed in R’s graphic
device.
The MS Excel output files from all analysis functions received an additional sheet with warnings (if any) related with the computations. So far these warnings were just printed on screen.
Internal reorganization of the code producing warnings related with the computations and the way they are issued.
Improved documentation.
Various code changes following the update of R to version 4.2.0.
lsa.pcts.means
does not show the syntax when
only splitting variables are chosen for the analysis and the GUI freezes
when the analysis is ran.lsa.pcts.means
received a new argument,
central.tendency
, which allows users to compute either the
arithmetic mean (default and available so far), median (new) or mode
(new) for continuous variables.
New function, lsa.select.countries.PISA
, a utility
function that allows the user to select countries of interest from a
converted PISA data file (or PISA object residing in memory) and remove
the rest of the countries’ data. This is useful when the user does not
want to analyze all countries data available in an original a PISA data
file.
All analysis functions received a new argument,
save.output
. If TRUE
(default), the output is
written into MS Excel file, as it was so far. If FALSE
, the
output (a list of all different estimates) is printed on screen or can
be assigned to an object. The argument is available in command-line use,
but not in the GUI.
Multiple fixes in GUI for better workflow.
Improved documentation.
All analysis functions. When “IDCNTRY” is added explicitly to the
list of split.vars
and include.missing = TRUE
,
the function crashes with the following error message. Thanks to Laura
Ringiene.
lsa.prctls
function. When computations involve PVs,
the estimates of specific percentile appear in a wrong column, e.g. the
25th percentile columns contain the estimates for the 5th percentile
columns and the other way around. Thanks to Laura Ringiene.
lsa.data.diag
function. When the tables are exported
to Excel, the “Index” sheet appears as the first one, but the file opens
with the sheet with statistics for the first variable on the
front.
GUI with lsa.data.diag
and all analysis functions.
When using the GUI and an output file with the same name as the
specified is already opened, the GUI crashes when the respective
function tries to write the new output file.
lsa.bin.log.reg
function. The coefficients output is
not sorted properly by the names of the independent variables and the
desired order.
GUI with lsa.corr
function. When the loaded data
file in “Correlations” analysis contains no PVs, the radio buttons for
choosing between Pearson and Spearman correlation are not
shown.
GUI with all functions. If any error occurs during a function execution (i.e. after pressing the “Execute syntax” button), the GUI crashes.
New analysis function, lsa.crosstabs
. It computes a
two-way table (crosstabulations) and Rao-Scott first- and second-order
design corrected chi-square statistics. The Rao-Scott adjustment is
needed because of the clustered design of the large-scale assessments
and surveys data.
Added the possibility to include two-way interaction terms in
lsa.lin.reg
and lsa.bin.log.reg
. The
interactions can be between two categorical variables, categorical and
continuous, continuous and continuous, categorical with PVs, continuous
with PVs, and PVs with PVs.
Added a new printing method for lsa.data
objects in
memory. It prints the study name, cycle, respondent type(s), total
number of countries, key, if the data has user-defined missing values or
not, and a snippet of the data.
Added support for the recently released IEA eTIMSS 2019 Problem Solving and Inquiry (PSI) tasks’ data.
The RALSA logos in the GUI and GUI start-up screen was replaced with higher-resolution images.
Various visual improvements of the GUI.
Updated and improved documentation.
This is a maintenance version fixing some bugs and removing package dependency.
lsa.pcts.means
function crashes with an error
message when no split variables are added and both background variables
and PVs are added to compute means for. Thanks to an anonymous RALSA
user.
lsa.bin.log.reg
function crashes when the variable
name passed to bin.dep.var
contains numeric
characters.
lsa.lin.reg
function crashes when the variable name
passed to bckg.dep.var
contains numeric
characters.
When used in the GUI, the lsa.recode.vars
assigns
the new value labels to the recoded values in incorrect order. Thanks to
multiple workshop participants at the ECER 2021 pre-conference
training.
The gdata
package is no longer needed by
RALSA
.
Start up and warning messages when dependencies are loaded during GUI start are not displayed anymore.
This is a maintenance version following the update of base R to v4.1.0 where some functions’ behavior has changed and cause crashes in the analysis functions.
All analysis functions. Some functions in base R were updated and
their behavior has changed causing crashes in the analysis functions
with first argument has length \> 1
error
messages.
lsa.vars.dict
function. When there are just two
levels for a factor variable, the second level in ?Variable levels? ends
without a single quote.
Occasionally, the lsa.data.diag
freezes R with a
question mark in the console and eventually crashes the R session when
split.vars
are provided.
Various optimizations in the lsa.corr
,
lsa.lin.reg
and lsa.bin.log.reg
functions.
The lsa.data.diag
function now has user interruption
handling with a message.
All analysis functions. Any analysis function crashes when TALIS 3S data is used and the weight variable is specified explicitly.
All analysis functions. When ICCS teacher and school data are merged, the default weight, jakknifing zone and jakknifing replication indicator are not automatically detected and the function crashes, while specifying the weight manually passes.
lsa.prctls
function. The order of the columns for
the percentiles, their SE, SVR and MVR is scrambled.
All data preparation and analysis functions. When using
data.object
to provide data and the object is in quotes,
the function crashes with uninterpretable error message. Added custom
handle and error message.
lsa.lin.reg
function. The function crashes when
using specific variable combinations.
GUI. The filtering of the tables with country ISOs, country names, variable names and labels is very slow and oftentimes unresponsive.
GUI with lsa.recode.vars
. Occasionally, when the
lsa.recode.vars
function is executed by pressing the
“Execute syntax” button, the interface crashes. This is because there is
a factor level for which no actual values exist in the data. Now handled
with custom error message.
lsa.merge.data
function. The school weight was
dropped when merging school and teacher data in TALIS which prevented
the use of the merged file in multilevel models. Thanks to Jelena
Veletic.
lsa.data.diag
, a quick automated production of weighted or
unweighted frequency tables for categorical variables and descriptive
statistics for continuous variables. These tables are for data
diagnostic purposes prior to analysis and are not for reporting results
from large-scale assessments.After updating R to v4.0.5 and the packages RALSA depends on, the warning messages in the GUI console were not displayed, although displayed in RStudio console. The warning messages are now back in the GUI console as well.
Showing and hiding elements in the GUI when using the benchmarks analysis type was improved.
The version number was incremented to 1.0 since the package has already achieved stability and maturity.
lsa.convert.data
function. The function crashes when
the different cycles of the study change the case of the file names and
their extensions. Thanks to Yuan-Ling (Linda) Liaw.
lsa.recode.vars
function. If the recoding
instruction ends with semicolon, the function crashes.
lsa.bin.log.reg
function. The function crashes if
some specific patterns are found in the binary dependent variable
names.
lsa.pcts.means
function. Some missing estimates in
columns Mean, Mean_SE, Mean_SVR, Mean_MVR, SD_SE and SD_MVR when the
groups are too small.
All analysis functions crash using SITES 2006 data when only mathematics teacher or only science teacher data are used.
lsa.pcts.means
function. Some estimates using CivED
data were incorrect.
lsa.pcts.means
function. Missing estimates in some
columns for specific combination of splitting variables.
The ISO
argument in lsa.convert.data
is
now case-insensitive.
The file.types
and ISO
arguments in
lsa.merge.data
are now case insensitive.
The error messages in lsa.recode.vars
are
improved.
lsa.convert.data
function. Unrecognized characters
in factor levels are now fixed. Such were, for example the levels of the
number of books variable in PIRLS 2016 and other cycles which displayed
unrecognized characters instead of instead of “-”.
GUI
. When categorical variables are added in the
list of Independent background categorical variables
in
linear and logistic regression, the number of categories
(N cat.
column) and the drop-down menu for the reference
categories (Ref. cat.
column) include the missing values as
well.
lsa.convert.data
function. For some variables
categories have the same labels as the missing ones in other variables
and are improperly converted as missing.
When loading or switching to a tab in the GUI
, it is
scrolled to the position where the previous tab was scrolled
to.
TIMSS 2019 is now fully supported.
PISA for Development is now supported, as requested by David Joseph Rutkowski.
Various improvements for the GUI
elements
location.
Improved documentation.
Links to the documentation for each functionality
RALSA
supports were added to the Help
section
of the GUI
.
Improved messages, warnings and error messages.
The first version of the R Analyzer for Large-Scale Assessments
(RALSA
) is released. RALSA
targets both the
experienced R users, as well as those less technical skills. Thus, along
with the traditional command-line R interface, a Graphical User
Interface is featured.
Note that this is a “first release” version, so some bugs are expected.
RALSA
is is used for preparation and analysis of data
from large-scale assessments and surveys which use complex sampling and
assessment design. Currently, RALSA
supports a number of
studies with different design and a number of analysis types (see
below). Both of these will increase in future.
RALSA
is a free and open source software licensed under
GPL v2.0.
Currently, RALSA
supports the following
functionality:
Prepare data for analysis
Convert data (SPSS, or text in case of PISA prior 2015)
Merge study data files from different countries and/or respondents
View variable properties (name, class, variable label, response categories/unique values, user-defined missing values)
Recode variables
Perform analyses (more analysis types will be added in future)
Percentages of respondents in certain groups and averages on variables of interest, per group
Percentiles of variables within groups of respondents
Percentages of respondents reaching or surpassing benchmarks of achievement
Correlations (Pearson or Spearman)
Linear regression
Binary logistic regression
All data preparation and analysis functions automatically recognize the study design and apply the appropriate techniques to handle the complex sampling assessment design issues, while giving freedom to tweak the analysis (e.g. change the default weight, apply the “shortcut” method in TIMSS and PIRLS, and so on).
Currently, RALSA
can work with data from all cycles of
the following studies (more will be added in future):
CivED
ICCS
ICILS
RLII
PIRLS (including PIRLS Literacy and ePIRLS)
TIMSS (including TIMSS Numeracy, eTIMSS will be added with the upcoming release of TIMSS 2019)
TiPi (TIMSS and PIRLS joint study)
TIMSS Advanced
SITES
TEDS-M
PISA
TALIS
TALIS Starting Strong Survey (a.k.a. TALIS 3S)