{"id":13857730,"url":"https://github.com/skgrange/threadr","last_synced_at":"2026-01-28T00:27:07.424Z","repository":{"id":34789223,"uuid":"38772974","full_name":"skgrange/threadr","owner":"skgrange","description":"Tools to Thread Pieces Of Data Analysis Together","archived":false,"fork":false,"pushed_at":"2025-12-19T19:09:16.000Z","size":2032,"stargazers_count":30,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-22T08:23:23.733Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"R","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/skgrange.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-07-08T18:41:46.000Z","updated_at":"2025-12-19T19:09:20.000Z","dependencies_parsed_at":"2023-02-15T07:15:43.465Z","dependency_job_id":"7916fdf9-648e-4179-abf5-6e205e00bae4","html_url":"https://github.com/skgrange/threadr","commit_stats":{"total_commits":466,"total_committers":5,"mean_commits":93.2,"dds":"0.27467811158798283","last_synced_commit":"8ed2886265cb0b71e247090ec78657318fcd1fde"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skgrange/threadr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skgrange%2Fthreadr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skgrange%2Fthreadr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skgrange%2Fthreadr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skgrange%2Fthreadr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skgrange","download_url":"https://codeload.github.com/skgrange/threadr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skgrange%2Fthreadr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28828792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T23:29:49.665Z","status":"ssl_error","status_checked_at":"2026-01-27T23:25:58.379Z","response_time":168,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-08-05T03:01:45.357Z","updated_at":"2026-01-28T00:27:07.406Z","avatar_url":"https://github.com/skgrange.png","language":"R","readme":"# **threadr** \u003ca href='https://github.com/skgrange/threadr'\u003e\u003cimg src='man/figures/logo.png' align=\"right\" height=\"131.5\" /\u003e\u003c/a\u003e\n\n[![Lifecycle Status](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://www.tidyverse.org/lifecycle/)\n\n**threadr** is a collection of R utility functions to link pieces of analysis together. **threadr** is not a focused, single-unit package, rather a collection of functions which I use to glue many processes together.\n\n## Installation\n\n```\n# Development version\ninstall.packages(\"remotes\")\nremotes::install_github(\"skgrange/threadr\")\n```\n\n## Some infomation\n\n  - Utilities:\n    - Write JSON files with `write_json`. \n    - FTP/SFTP functions. \n      - `list_files_ftp`, `download_ftp_file`, and `upload_to_ftp`.\n    - scp functions\n      - `list_files_scp` and `download_with_scp`. \n    - `str_*` functions. Do things with strings which **stringr** does not. \n      - `str_trim_length`, `str_sentence_case`, `str_to_underscore`, `str_chop`, `str_drop_xml_tags`, `str_extract_digits`, `str_sql_quote`, `str_nth_character`.\n    - A number of unit conversion functions.\n      - `miles_to_km`, `knots_to_km_h`, `kw_to_hp`, `fahrenheit_to_celsius`, `psi_to_bar`, `newton_metre_to_foot_pound`, `mpg_to_l_100_km`, `mpg_to_km_l`. \n    - Test if a vector is within one or many ranges `within_range`.\n    - Create UUIDs with `uuid`. \n\n  - Date functions\n    - Pad time-series to different intervals with `time_pad`. \n    - Make an irregular time-series regular with `time_pad_irregular`. \n    - Round dates to arbitrary time intervals such as 5-seconds, 5-minutes, 15-minutes, 2-minutes, 30-minutes, etc. with `round_date_interval`.\n    - Get Monday-based weeks of the year with `week_monday`. \n    - Get time-zone from date vector with `time_zone`.\n    - Parse numerical date formats easily with `parse_unix_time` and `parse_excel_date`.\n    - Aggregate by dates with `aggregate_by_date`. \n\n  - **threadr** originally contained many database functions. These function were pulled from the package from version 0.4.0 onwards and can now be found in [**databaser**](https://github.com/skgrange/databaser).\n\n","funding_links":[],"categories":["R"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskgrange%2Fthreadr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskgrange%2Fthreadr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskgrange%2Fthreadr/lists"}