GAUSS 26: Interactive Data Transforms, New Time Series Tools, and a Streamlined Interface

Introduction

GAUSS 26 is here, bringing over 30 new features, enhancements, and bug fixes focused on making your daily data work faster and more intuitive.

This release introduces interactive data transformation in the Symbol Editor, new functions for time series aggregation and panel data management, and a streamlined graphics interface that puts settings at your fingertips.

Transform Data Without Writing Code

The new Transform Tab in the Symbol Editor lets you apply common data transformations interactively. Select a column, choose a transformation, preview the results, and apply—all without leaving the editor.

Available transformations include:

  • Numeric columns: logarithm, exponential, square root, absolute value, standardize, normalize, lag, first difference, percent change, cumulative sum, moving average, replace missing values
  • String columns: lowercase, uppercase, trim, text replacement
  • Date columns: extract year, month, day, quarter, week, hour, minute, second

The Transform Tab generates the equivalent GAUSS code for each operation, making it easy to incorporate your transformations into production scripts.

Auto-generated code for data transformations in GAUSS 26.

Ready to try the new Transform Tab? Contact us for a demo!

Aggregate Time Series to Any Frequency

The new tsAggregate function converts time series data from higher to lower frequencies with flexible aggregation methods. Whether you're downsampling tick data to daily observations or converting monthly series to quarterly, tsAggregate handles the date alignment automatically.

// Load daily stock data
data = loadd("daily_prices.csv", "date(Date) + Price + Volume");

// Aggregate to monthly: last price, total volume
monthly = tsAggregate(data, "monthly", "last" $| "sum");

Supported frequencies include second, minute, hourly, daily, monthly, quarterly, and yearly. Aggregation methods include last, first, mean, sum, max, min, median, standard deviation, count, and mode—applied per column as needed.

Balance Panel Datasets

Working with unbalanced panels often requires preprocessing before estimation. The new pdBalance function standardizes your panel so each group has identical time coverage, either by filling gaps or removing incomplete cases.

// Ensure all firms have the same observation periods
balanced_panel = pdBalance(panel_data, "fill");

This pairs well with existing panel data tools like pdLag and pdSummary introduced in GAUSS 25.

Multicolumn Aggregation

// Find max tips by 'day' and 'time'
method = "max";
variables = "day" $| "time";

max_tips = aggregate(tips, method, variables);
print max_tips;
 day             time       total_bill              tip
Thur            Lunch        43.110000        6.7000000
Thur           Dinner        18.780000        3.0000000
 Fri            Lunch        16.270000        3.4800000
 Fri           Dinner        40.170000        4.7300000
 Sat           Dinner        50.810000        10.000000
 Sun           Dinner        48.170000        6.5000000

Cleaner Plotting Code with String Parameters

Graphics functions now accept descriptive string names in place of numeric codes. This makes your plotting code self-documenting and eliminates trips to the documentation to look up symbol or line style values.

// Before: numeric codes require documentation lookup
plotSetLineStyle(&p, 3);
plotSetLineSymbol(&p, 5);
plotSetFill(&p, 2);

// After: intent is clear from the code
plotSetLineStyle(&p, "dash");
plotSetLineSymbol(&p, "diamond");
plotSetFill(&p, "horizontal");

This enhancement applies to plotSetLineSymbol, plotSetFill, plotSetLineStyle, and plotSetLinePen. Numeric codes continue to work for backward compatibility.

Unified Graphics Settings Panel

The Graphics page now combines Graph Settings and Canvas Settings into a single tabbed interface. Tabs for Axes, Lines, Symbols, Text, and Canvas organize options logically, and a new toolbar toggle provides quick access.

Interactive graph editing in GAUSS 26.

Faster Navigation with Filter Widgets

New filter widgets on the Command page and Data page let you search as you type. Press Ctrl+K (Cmd+K on macOS) to activate filtering, then start typing to narrow results instantly.

Filter box in GAUSS 26 makes searching through past commands quick and easy.

The Open Symbol dialog on the Data page now includes autocomplete, suggesting matching symbol names as you type.

Additional Enhancements

  • sortc and sortmc accept a sort_order parameter for ascending (1) or descending (-1) sorting
  • strrindx accepts vector input for the search pattern
  • New endswith function complements startsWith for string pattern matching
  • Symbol Editor filtering adds "Starts With", "Does Not Start With", "Ends With", and "Does Not End With" options
  • New button on Edit and Debug pages opens symbols directly in the Symbol Editor
  • Package Manager provides detailed error messages with specific troubleshooting steps

Get Started with GAUSS 26

GAUSS 26 is a free update for users with active maintenance.

Leave a Reply