Delete Tables and Plots - Delete If Sample Size Lower Than Specified Value
Jump to navigation
Jump to search
Deletes any tables from your project that have a sample size smaller than a specified value. This QScript deletes any tables from your project that have a sample size smaller than a specified value.
Technical details
This QScript:
- Asks you to specify a minimum sample size to keep.
- Asks you to select which tables you would like to check.
- Deletes any tables from your selection where the largest value of Base n in the cells of the table is less than the minimum value.
How to apply this QScript
- Start typing the name of the QScript into the Search features and data box in the top right of the Q window.
- Click on the QScript when it appears in the QScripts and Rules section of the search results.
OR
- Select Automate > Browse Online Library.
- Select this QScript from the list.
Customizing the QScript
This QScript is written in JavaScript and can be customized by copying and modifying the JavaScript.
Customizing QScripts in Q4.11 and more recent versions
- Start typing the name of the QScript into the Search features and data box in the top right of the Q window.
- Hover your mouse over the QScript when it appears in the QScripts and Rules section of the search results.
- Press Edit a Copy (bottom-left corner of the preview).
- Modify the JavaScript (see QScripts for more detail on this).
- Either:
- Run the QScript, by pressing the blue triangle button.
- Save the QScript and run it at a later time, using Automate > Run QScript (Macro) from File.
Customizing QScripts in older versions
JavaScript
// Whenever a table's sample size is so small it's not worth looking at, delete the table.
// The sample size used for the comparison is the largest value of Base n on the table.
includeWeb('JavaScript Utilities');
includeWeb('QScript Table Functions');
includeWeb('QScript Selection Functions');
var min_size = prompt("Please enter the minimum sample size that you wish to view. Tables with a smaller sample size will be removed.", 10);
var items = selectManyTablesWithGroupNames("Please choose which tables you would like to check. Tables with a sample size less than " +min_size+" will be removed." , project.report).tables;
var deleted_table_names = [];
for (var i = 0; i < items.length; i++)
if (items[i].type == 'Table') {
var output;
try {
output = items[i].calculateOutput();
} catch (e) {
items[i].deleteItem(); // Table is empty and should be removed
continue;
}
// Ignore tables showing Text questions
if (output.availableStatistics.indexOf('Text') == -1) {
if (maxWithReplacedNaN(output.get('Base n'), 0) < min_size) {
deleted_table_names.push(items[i].name);
items[i].deleteItem();
}
}
}
if (deleted_table_names.length > 0) {
log("The following tables have been removed: ");
log(deleted_table_names.join('\r\n'));
} else {
log("No tables were found to have a sample size less than " + min_size +".");
}
// returns the maximum value of an array of any size; where NaN is replaced with another value
// if any of the elements of the array are also arrays then this function applies itself
// to find the maximum of the subarray
function maxWithReplacedNaN(x, replace_NaN_with) {
var max_value = Number.NEGATIVE_INFINITY;
var n = x.length;
for (var i = 0; i < n; i++){
var value = x[i];
if (isArray(value))
value = maxWithReplacedNaN(value, replace_NaN_with);
if (isNaN(value))
value = replace_NaN_with;
if (max_value < value)
max_value = value;
}
return max_value;
}
See also
- QScript for more general information about QScripts.
- QScript Examples Library for other examples.
- Online JavaScript Libraries for the libraries of functions that can be used when writing QScripts.
- QScript Reference for information about how QScript can manipulate the different elements of a project.
- JavaScript for information about the JavaScript programming language.
- Table JavaScript and Plot JavaScript for tools for using JavaScript to modify the appearance of tables and charts.