{"id":13600780,"url":"https://github.com/coalio/Assistant","last_synced_at":"2025-04-11T01:30:25.438Z","repository":{"id":117677301,"uuid":"269854994","full_name":"coalio/Assistant","owner":"coalio","description":"A data science library providing flexible dataframes for Lua 5.1+","archived":false,"fork":false,"pushed_at":"2021-12-17T14:46:46.000Z","size":164,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-07T03:42:17.384Z","etag":null,"topics":["data-analysis","data-science","data-structures","dataframe","lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coalio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-06-06T03:26:51.000Z","updated_at":"2024-06-26T03:05:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"dc870c48-ddde-4b14-9f52-1a87f255d648","html_url":"https://github.com/coalio/Assistant","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coalio%2FAssistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coalio%2FAssistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coalio%2FAssistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coalio%2FAssistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coalio","download_url":"https://codeload.github.com/coalio/Assistant/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248324943,"owners_count":21084837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","data-science","data-structures","dataframe","lua"],"created_at":"2024-08-01T18:00:48.477Z","updated_at":"2025-04-11T01:30:25.067Z","avatar_url":"https://github.com/coalio.png","language":"Lua","funding_links":[],"categories":["Libraries"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg id=\"thumbnail\" src=\"https://github.com/coalio/Assistant/blob/master/docs/repo/assistant-brand-l.png?raw=true\" thumbnail\u003e\n\u003c/div\u003e\n\n-----------------\n\n[![Last Commit](https://img.shields.io/github/last-commit/coalio/assistant)](https://github.com/coalio/Assistant/commits/master)\n[![Only Lua](https://img.shields.io/badge/lua-100%25-blue)](https://github.com/coalio/Assistant/search?l=lua)\n\n## What is Assistant?\n\nAssistant is a data science library for Lua 5.1+\n\nAssistant aspires to provide the tools required for real-world data management,\nbecause Lua also deserves a nice data science and data analysis library.\n\n*I'm currently the only maintainer of this project*, but I would love your contributions\nand I'm currently looking for help.\n\n## Currently implemented\n\n1. Label naming, be it strings, numbers, or a combination of both\n2. Column sorting by labels\n3. Printing your dataframe in the form of a spreadsheet within your console\n4. Smart indexing functions\n5. Metamethods to make the code as simple as possible\n\n## What Assistant should support next\n\n1. Data analysis functions\n2. Plotting and visualization\n3. Memoize for faster indexing\n4. Importing and exporting data to different file formats\n5. Integration with Torch and Torchnet for machine learning\n\n## Contributions\n\nI would love if you contributed to Assistant, and I wouldn't like to un-inspire you from contributing,\nbut to make the code easier to maintain in the long term, there's a \u003ca href=\"https://github.com/coalio/Assistant/blob/master/conventions.txt\"\u003econventions.txt\u003c/a\u003e file\n  \nThese conventions are not very restricting, as long as it works there's no need to use a special method for it\n\n```lua\n-- sheet.print() is a very versatile function\n-- Assistant has intelligent column/row naming that allows things like this example\n\nlocal sheet = require('assistant').sheet\n\n-- You can opt for using an array or hash table (or both)\n-- ['year'] = {2010, 2011, 2012, ...\n-- However, the array part wont be mixed with the hash part\ndata = {\n  { \n    2010, 2011, 2012,\n    2010, 2011, 2012,\n    2010, 2011, 2012\n  } ,\n  {\n  'FCBarcelona', 'FCBarcelona',\n  'FCBarcelona', 'RMadrid',\n  'RMadrid', 'RMadrid',\n  'ValenciaCF', 'ValenciaCF',\n  'ValenciaCF'\n  } ,\n  ['wins'] = {30, 28, 32, 29, 32, 26, 21, 17, 19},\n  ['draws'] = {6, 7, 4, 5, 4, 7, 8, 10, 8},\n  ['losses'] = {2, 3, 2, 4, 2, 5, 9, 11, 11}\n}\n\nfootball = sheet:new(\n  {data = data},\n  {\n    columns = { 'year', 'team', 'wins', 'draws', 'losses' }, -- Order columns like this\n    rows = {'FC1', 'FC2', 'FC3', 'RM1', 'RM2', 'RM3', 'CF1', 'CF2', 'CF3'} -- Give rows a label\n  }\n)\n\n--Append a new column that holds the index for every row\nnewRow = {\n  name = 'index',\n  content = {}\n}\nfor i = 1, #football.rows do\n  table.insert(newRow.content, i)\nend\n\nfootball:append(\n  newRow.name,\n  newRow.content, 1 -- Append at position 1, that is, the first column\n)\n\n-- Print the data\nfootball(-1, -1, -1, {\n  {'index', 'year', 'team', 'wins', 'draws', 'losses'} -- Print only these columns and in this order\n}) -- football() is syntactic sugar for football:print()\n\n-- You can play with this example\n-- sheet size is 5x9 (6x9 after appending column)\n```\n\n```lua\nDisplaying all characters for 6 columns and 9 rows\n\n#       index   year    team            wins    draws   losses\nFC1     1       2010    FCBarcelona     30      6       2\nFC2     2       2011    FCBarcelona     28      7       3\nFC3     3       2012    FCBarcelona     32      4       2\nRM1     4       2010    RMadrid         29      5       4\nRM2     5       2011    RMadrid         32      4       2\nRM3     6       2012    RMadrid         26      7       5\nCF1     7       2010    ValenciaCF      21      8       9\nCF2     8       2011    ValenciaCF      17      10      11\nCF3     9       2012    ValenciaCF      19      8       11\nSheet size:     6x9     (col x row)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoalio%2FAssistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoalio%2FAssistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoalio%2FAssistant/lists"}