Wolfram Function Repository
Instant-use add-on functions for the Wolfram Language
Function Repository Resource:
Create a lightweight, named column store of tabular data that is compatible with Query, Select and other SQL-like functions
ResourceFunction["TableSet"][names, data] creates a data structure with columns named names and tabular data data. |
"ColumnNames" | list of the column names |
"Data" | list of the data |
"RowCount" | number of rows |
Delete | delete a row or multiple rows |
DeleteDuplicates | delete duplicate rows |
Insert | add a row at a specified position |
JoinAcross | join two ResourceFunction["TableSet"] objects by "Left", "Inner" and "Right" specifications |
Part | return parts of the rows and columns |
Query | perform a query using the column names as named slots |
Select | pick out rows according to a criterion |
TableForm | display a ResourceFunction["TableSet"] arranged in an array of rectangular cells |
Union | return a sorted list of all the distinct elements that appear in a ResourceFunction["TableSet"] object |
Create a TableSet:
In[1]:= | ![]() |
Out[1]= | ![]() |
View the number of rows:
In[2]:= | ![]() |
Out[2]= | ![]() |
Insert a row:
In[3]:= | ![]() |
Out[3]= | ![]() |
View the updated number of rows:
In[4]:= | ![]() |
Out[4]= | ![]() |
View the TableSet in TableForm:
In[5]:= | ![]() |
Out[5]= | ![]() |
TableSet has a summary form:
In[6]:= | ![]() |
Out[6]= | ![]() |
Return the column names:
In[7]:= | ![]() |
Out[7]= | ![]() |
Return the row count:
In[8]:= | ![]() |
Out[8]= | ![]() |
Return the data in the TableSet:
In[9]:= | ![]() |
Out[9]= | ![]() |
Delete a row or rows from a TableSet:
In[10]:= | ![]() |
Out[10]= | ![]() |
TableSet rows before deleting a row:
In[11]:= | ![]() |
Out[11]= | ![]() |
Delete row 3:
In[12]:= | ![]() |
Out[12]= | ![]() |
Row count after deleting row 3:
In[13]:= | ![]() |
Out[13]= | ![]() |
Delete row 7 and the last row:
In[14]:= | ![]() |
Out[14]= | ![]() |
Row count after deleting row 7 and the last row:
In[15]:= | ![]() |
Out[15]= | ![]() |
Delete duplicate rows:
In[16]:= | ![]() |
Out[16]= | ![]() |
The first two data rows are identical to the next two rows:
In[17]:= | ![]() |
Out[17]= | ![]() |
Delete duplicate rows:
In[18]:= | ![]() |
Out[13]= | ![]() |
Add a row at a specified position:
In[19]:= | ![]() |
Out[19]= | ![]() |
Insert a row at position 3:
In[20]:= | ![]() |
Out[18]= | ![]() |
Insert rows into position 3 and the last position:
In[21]:= | ![]() |
Out[14]= | ![]() |
For JoinAcross, "Outer" and KeyCollisionFunction are not implemented:
In[22]:= | ![]() |
Out[22]= | ![]() |
Evaluate "Left", "Inner" and "Right" joins:
In[23]:= | ![]() |
Out[23]= | ![]() |
Return parts of the rows and columns:
In[24]:= | ![]() |
Out[24]= | ![]() |
Return the first two rows:
In[25]:= | ![]() |
Out[25]= | ![]() |
Return every other row:
In[26]:= | ![]() |
Out[26]= | ![]() |
Return the last column:
In[27]:= | ![]() |
Out[27]= | ![]() |
Use named slots to reference TableSet columns in Query:
In[28]:= | ![]() |
Out[28]= | ![]() |
Query a Histogram of the sum of the columns:
In[29]:= | ![]() |
Out[29]= | ![]() |
Add columns based on calculations on existing columns:
In[30]:= | ![]() |
Out[27]= | ![]() |
Pick out rows according to a criterion:
In[31]:= | ![]() |
Out[31]= | ![]() |
Select rows with column A > 4 and B < 12:
In[32]:= | ![]() |
Out[32]= | ![]() |
Compare the row count of the original and result table:
In[33]:= | ![]() |
Out[33]= | ![]() |
In[34]:= | ![]() |
Out[34]= | ![]() |
Display the TableSet arranged in an array of rectangular cells:
In[35]:= | ![]() |
Out[35]= | ![]() |
In[36]:= | ![]() |
Out[36]= | ![]() |
Create TableSets with example data:
In[37]:= | ![]() |
View TableSetobjects in TableForm:
In[38]:= | ![]() |
Out[38]= | ![]() |
Union gives the union of the rows maintaining the column names from the first table:
In[39]:= | ![]() |
Out[39]= | ![]() |
When working with large tabular data, a significant decrease in memory usage can be gained by using TableSet as compared to Dataset. For example, with a two-column table of integer values, the ByteCount difference quickly widens with the record count as the graph tooltips and the following table demonstrate:
In[40]:= | ![]() |
Create the data:
In[41]:= | ![]() |
Plot it:
In[42]:= | ![]() |
Out[42]= | ![]() |
See the data in a table:
In[43]:= | ![]() |
Out[43]= | ![]() |
A Query to add columns returns a TableSet:
In[44]:= | ![]() |
Out[44]= | ![]() |
In[45]:= | ![]() |
Out[45]= | ![]() |
However, a general query does not return a TableSet:
In[46]:= | ![]() |
Out[46]= | ![]() |
This work is licensed under a Creative Commons Attribution 4.0 International License