## 3 Table Representation ¶

Tablicious provides the `table` class for representing tabular data.

A `table` is an array object that represents a tabular data structure. It holds multiple named “variables”, each of which is a column vector, or a 2-D matrix whose rows are read as records.

A `table` is composed of multiple “variables”, each with a name, which all have the same number of rows. (A `table` variable is like a “column” in SQL tables or in R or Python/pandas dataframes. Whenever you read “variable” here, think “column”.) Taken together, the i-th element or row of each variable compose a single record or observation.

Tables are good ways of arranging data if you have data that would otherwise be stored in a few separate variables which all need to be kept in the same shape and order, especially if you might want to do element-wise comparisons involving two or more of those variables. That’s basically all a `table` is: it holds a collection of variables, and makes sure they are all kept aligned and ordered in the same way.

Tables are a lot like SQL tables or result sets, and are based on the same relational algebra theory that SQL is. Many common, even powerful, SQL operations can be done in Octave using `table` arrays. It’s like having your own in-memory SQL engine.