{
  "_id": "6abccd0c99f7aa8c6aa4bf47",
  "Package": "textshape",
  "Title": "Tools for Reshaping Text",
  "Version": "1.7.6",
  "Authors@R": "c(\nperson(\"Tyler\", \"Rinker\", email = \"tyler.rinker@gmail.com\", role = c(\"aut\", \"cre\")),\nperson(\"Joran\", \"Elias\", role = \"ctb\"),\nperson(\"Matthew\", \"Flickinger\", role = \"ctb\"),\nperson('Paul', 'Foster', role = \"ctb\")\n)",
  "Maintainer": "Tyler Rinker <tyler.rinker@gmail.com>",
  "Description": "Tools that can be used to reshape and restructure text\ndata.",
  "License": "GPL-2",
  "LazyData": "TRUE",
  "RoxygenNote": "7.2.3",
  "Encoding": "UTF-8",
  "URL": "https://github.com/trinker/textshape",
  "BugReports": "https://github.com/trinker/textshape/issues",
  "Collate": "'bind_list.R' 'bind_table.R' 'bind_vector.R' 'change_index.R'\n'cluster_matrix.R' 'column_to_rownames.R' 'combine.R'\n'duration.R' 'flatten.R' 'from_to.R' 'grab_index.R'\n'grab_match.R' 'mtabulate.R' 'split_index.R' 'split_match.R'\n'split_match_regex_to_transcript.R' 'split_portion.R'\n'split_run.R' 'split_sentence.R' 'split_sentence_token.R'\n'split_speaker.R' 'split_token.R' 'split_transcript.R'\n'split_word.R' 'textshape-package.R' 'tidy_colo_dtm.R'\n'utils.R' 'tidy_dtm.R' 'tidy_list.R' 'tidy_matrix.R'\n'tidy_table.R' 'tidy_vector.R' 'unique_pairs.R' 'unnest_text.R'",
  "Config/pak/sysreqs": "libicu-dev",
  "Repository": "https://trinker.r-universe.dev",
  "Date/Publication": "2024-04-01 17:35:11 UTC",
  "RemoteUrl": "https://github.com/trinker/textshape",
  "RemoteRef": "HEAD",
  "RemoteSha": "61dc5f1e0ba817571d97d87751959f78613ad92c",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-09-30 08:09:21 UTC",
    "User": "root"
  },
  "Author": "Tyler Rinker [aut, cre],\nJoran Elias [ctb],\nMatthew Flickinger [ctb],\nPaul Foster [ctb]",
  "_user": "trinker",
  "_type": "src",
  "_file": "textshape_1.7.6.tar.gz",
  "_fileid": "https://r2.ropensci.org/980922baf7993278b2bd65b88073b5190daf90a7d106ce81de84f4b4680d08b4",
  "_filesize": 901723,
  "_sha256": "980922baf7993278b2bd65b88073b5190daf90a7d106ce81de84f4b4680d08b4",
  "_expires": "2027-01-08T08:49:14.000Z",
  "_created": "2026-09-30T08:09:21.000Z",
  "_published": "2026-09-30T08:49:15.988Z",
  "_jobs": [
    {
      "job": 109798169896,
      "time": 148,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11084227162"
    },
    {
      "job": 109798169780,
      "time": 112,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11084677514"
    },
    {
      "job": 109798169958,
      "time": 89,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11085524973"
    },
    {
      "job": 109798169900,
      "time": 93,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11085841571"
    },
    {
      "job": 109796973324,
      "time": 214,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11084956631"
    },
    {
      "job": 109798169838,
      "time": 122,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11084552838"
    },
    {
      "job": 109798169892,
      "time": 59,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11084951061"
    },
    {
      "job": 109798169907,
      "time": 75,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11084187001"
    },
    {
      "job": 109798169832,
      "time": 71,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11083944841"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239",
  "_status": "success",
  "_upstream": "https://github.com/trinker/textshape",
  "_commit": {
    "id": "61dc5f1e0ba817571d97d87751959f78613ad92c",
    "author": "Tyler Rinker <tyler.rinker@kangarootime.com>",
    "committer": "Tyler Rinker <tyler.rinker@kangarootime.com>",
    "message": "Merge branch 'master' of https://github.com/trinker/textshape\n",
    "time": 1711992911
  },
  "_maintainer": {
    "name": "Tyler Rinker",
    "email": "tyler.rinker@gmail.com",
    "login": "trinker",
    "description": "Director, Data Scientist, open-source developer , #python/#rstats enthusiast, #dataviz geek, and #nlp buff",
    "uuid": 1763278
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.4.0",
      "role": "Depends"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "slam",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "stringi",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "role": "Suggests"
    }
  ],
  "_owner": "trinker",
  "_selfowned": true,
  "_usedby": 41,
  "_updates": [],
  "_tags": [],
  "_topics": [
    "data-reshaping",
    "manipulation",
    "sentence-boundary-detection",
    "text-data",
    "text-formating",
    "tidy"
  ],
  "_stars": 54,
  "_contributors": [
    {
      "user": "trinker",
      "count": 126,
      "uuid": 1763278
    },
    {
      "user": "tylerrinker-dev",
      "count": 3,
      "uuid": 237491193
    }
  ],
  "_userbio": {
    "uuid": 1763278,
    "type": "user",
    "name": "Tyler Rinker",
    "followers": 630,
    "description": "Director, Data Scientist, open-source developer , #python/#rstats enthusiast, #dataviz geek, and #nlp buff"
  },
  "_downloads": {
    "count": 6010,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/textshape"
  },
  "_devurl": "https://github.com/trinker/textshape",
  "_searchresults": 1,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/readme.html",
    "extra/readme.md",
    "extra/textshape.html"
  ],
  "_homeurl": "https://github.com/trinker/textshape",
  "_realowner": "trinker",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.0",
      "date": "2016-12-31"
    },
    {
      "version": "1.0.0",
      "date": "2017-01-10"
    },
    {
      "version": "1.0.1",
      "date": "2017-01-20"
    },
    {
      "version": "1.0.2",
      "date": "2017-02-22"
    },
    {
      "version": "1.3.0",
      "date": "2017-07-27"
    },
    {
      "version": "1.5.0",
      "date": "2017-09-08"
    },
    {
      "version": "1.6.0",
      "date": "2018-06-07"
    },
    {
      "version": "1.7.1",
      "date": "2020-04-17"
    },
    {
      "version": "1.7.3",
      "date": "2021-05-28"
    },
    {
      "version": "1.7.5",
      "date": "2024-04-02"
    }
  ],
  "_exports": [
    "as_list",
    "bind_list",
    "bind_table",
    "bind_vector",
    "change_index",
    "cluster_matrix",
    "column_to_rownames",
    "combine",
    "duration",
    "ends",
    "flatten",
    "from_to",
    "from_to_summarize",
    "grab_index",
    "grab_match",
    "mtabulate",
    "split_index",
    "split_match",
    "split_match_regex",
    "split_portion",
    "split_run",
    "split_sentence",
    "split_sentence_token",
    "split_speaker",
    "split_token",
    "split_transcript",
    "split_word",
    "starts",
    "tidy_adjacency_matrix",
    "tidy_colo_dtm",
    "tidy_colo_tdm",
    "tidy_dtm",
    "tidy_list",
    "tidy_matrix",
    "tidy_table",
    "tidy_tdm",
    "tidy_vector",
    "unique_pairs",
    "unnest_text"
  ],
  "_datasets": [
    {
      "name": "DATA",
      "title": "Fictitious Classroom Dialogue",
      "object": "DATA",
      "class": [
        "data.frame"
      ],
      "fields": [
        "person",
        "sex",
        "adult",
        "state",
        "code"
      ],
      "rows": 11,
      "table": true,
      "tojson": true
    },
    {
      "name": "golden_rules",
      "title": "Sentence Boundary Disambiguation Edge Cases",
      "object": "golden_rules",
      "class": [
        "tbl_df",
        "tbl",
        "data.frame"
      ],
      "fields": [
        "Rule",
        "Text",
        "Outcome"
      ],
      "rows": 45,
      "table": false,
      "tojson": true
    },
    {
      "name": "hamlet",
      "title": "Hamlet (Complete & Split by Sentence)",
      "object": "hamlet",
      "class": [
        "qdap_df",
        "sent_split",
        "sent_split_text_var:dialogue",
        "data.frame"
      ],
      "fields": [
        "act",
        "tot",
        "scene",
        "location",
        "person",
        "died",
        "dialogue"
      ],
      "rows": 2007,
      "table": true,
      "tojson": true
    },
    {
      "name": "simple_dtm",
      "title": "Simple 'DocumentTermMatrix'",
      "object": "simple_dtm",
      "class": [
        "DocumentTermMatrix",
        "simple_triplet_matrix"
      ],
      "fields": [],
      "table": false,
      "tojson": false
    }
  ],
  "_help": [
    {
      "page": "bind_list",
      "title": "Row Bind a List of Named Dataframes or Vectors",
      "topics": [
        "bind_list"
      ]
    },
    {
      "page": "bind_table",
      "title": "Column Bind a Table's Values with Its Names",
      "topics": [
        "bind_table"
      ]
    },
    {
      "page": "bind_vector",
      "title": "Column Bind an Atomic Vector's Values with Its Names",
      "topics": [
        "bind_vector"
      ]
    },
    {
      "page": "change_index",
      "title": "Indexing of Changes in Runs",
      "topics": [
        "change_index"
      ]
    },
    {
      "page": "cluster_matrix",
      "title": "Reorder a Matrix Based on Hierarchical Clustering",
      "topics": [
        "cluster_matrix"
      ]
    },
    {
      "page": "column_to_rownames",
      "title": "Add a Column as Rownames",
      "topics": [
        "column_to_rownames"
      ]
    },
    {
      "page": "combine",
      "title": "Combine Elements",
      "topics": [
        "combine",
        "combine.data.frame",
        "combine.default"
      ]
    },
    {
      "page": "DATA",
      "title": "Fictitious Classroom Dialogue",
      "topics": [
        "DATA"
      ]
    },
    {
      "page": "duration",
      "title": "Duration of Turns of Talk",
      "topics": [
        "duration",
        "duration.data.frame",
        "duration.default",
        "duration.numeric",
        "ends",
        "starts"
      ]
    },
    {
      "page": "flatten",
      "title": "Flatten a Nested List of Vectors Into a Single Tier List of Vectors",
      "topics": [
        "flatten"
      ]
    },
    {
      "page": "from_to",
      "title": "Prepare Discourse Data for Network Plotting",
      "topics": [
        "from_to",
        "from_to.character",
        "from_to.data.frame",
        "from_to.default",
        "from_to.factor",
        "from_to.numeric",
        "from_to_summarize"
      ]
    },
    {
      "page": "golden_rules",
      "title": "Sentence Boundary Disambiguation Edge Cases",
      "topics": [
        "golden_rules"
      ]
    },
    {
      "page": "grab_index",
      "title": "Get Elements Matching Between 2 Points",
      "topics": [
        "grab_index",
        "grab_index.character",
        "grab_index.data.frame",
        "grab_index.default",
        "grab_index.list",
        "grab_index.matrix"
      ]
    },
    {
      "page": "grab_match",
      "title": "Get Elements Matching Between 2 Points",
      "topics": [
        "grab_match",
        "grab_match.character",
        "grab_match.data.frame",
        "grab_match.list"
      ]
    },
    {
      "page": "hamlet",
      "title": "Hamlet (Complete & Split by Sentence)",
      "topics": [
        "hamlet"
      ]
    },
    {
      "page": "mtabulate",
      "title": "Tabulate Frequency Counts for Multiple Vectors",
      "topics": [
        "as_list",
        "mtabulate"
      ]
    },
    {
      "page": "simple_dtm",
      "title": "Simple 'DocumentTermMatrix'",
      "topics": [
        "simple_dtm"
      ]
    },
    {
      "page": "split_index",
      "title": "Split Data Forms at Specified Indices",
      "topics": [
        "split_index",
        "split_index.character",
        "split_index.data.frame",
        "split_index.default",
        "split_index.factor",
        "split_index.list",
        "split_index.matrix",
        "split_index.numeric"
      ]
    },
    {
      "page": "split_match",
      "title": "Split a Vector By Split Points",
      "topics": [
        "split_match",
        "split_match_regex"
      ]
    },
    {
      "page": "split_portion",
      "title": "Break Text Into Ordered Word Chunks",
      "topics": [
        "split_portion"
      ]
    },
    {
      "page": "split_run",
      "title": "Split Runs",
      "topics": [
        "split_run",
        "split_run.data.frame",
        "split_run.default"
      ]
    },
    {
      "page": "split_sentence",
      "title": "Split Sentences",
      "topics": [
        "split_sentence",
        "split_sentence.data.frame",
        "split_sentence.default"
      ]
    },
    {
      "page": "split_sentence_token",
      "title": "Split Sentences & Tokens",
      "topics": [
        "split_sentence_token",
        "split_sentence_token.data.frame",
        "split_sentence_token.default"
      ]
    },
    {
      "page": "split_speaker",
      "title": "Break and Stretch if Multiple Persons per Cell",
      "topics": [
        "split_speaker"
      ]
    },
    {
      "page": "split_token",
      "title": "Split Tokens",
      "topics": [
        "split_token",
        "split_token.data.frame",
        "split_token.default"
      ]
    },
    {
      "page": "split_transcript",
      "title": "Split a Transcript Style Vector on Delimiter & Coerce to Dataframe",
      "topics": [
        "split_transcript"
      ]
    },
    {
      "page": "split_word",
      "title": "Split Words",
      "topics": [
        "split_word",
        "split_word.data.frame",
        "split_word.default"
      ]
    },
    {
      "page": "textshape",
      "title": "Tools for Reshaping Text",
      "topics": [
        "package-textshape",
        "textshape"
      ]
    },
    {
      "page": "tidy_colo_dtm",
      "title": "Convert a 'DocumentTermMatrix'/'TermDocumentMatrix' into Collocating Words in Tidy Form",
      "topics": [
        "tidy_colo_dtm",
        "tidy_colo_tdm"
      ]
    },
    {
      "page": "tidy_dtm",
      "title": "Convert a 'DocumentTermMatrix'/'TermDocumentMatrix' into Tidy Form",
      "topics": [
        "tidy_dtm",
        "tidy_tdm"
      ]
    },
    {
      "page": "tidy_list",
      "title": "Tidy a List of Named Dataframes or Named Vectors or Vectors",
      "topics": [
        "tidy_list"
      ]
    },
    {
      "page": "tidy_matrix",
      "title": "Convert a Matrix into Tidy Form",
      "topics": [
        "tidy_adjacency_matrix",
        "tidy_matrix"
      ]
    },
    {
      "page": "tidy_table",
      "title": "Tidy a Table: Bind Its Values with Its Names",
      "topics": [
        "tidy_table"
      ]
    },
    {
      "page": "tidy_vector",
      "title": "Tidy a Named Atomic Vector: Bind Its Values with Its Names",
      "topics": [
        "tidy_vector"
      ]
    },
    {
      "page": "unique_pairs",
      "title": "Extract Only Unique Pairs of Collocating Words in 'tidy_colo_dtm'",
      "topics": [
        "unique_pairs",
        "unique_pairs.data.table",
        "unique_pairs.default"
      ]
    },
    {
      "page": "unnest_text",
      "title": "Un-nest Nested Text Columns",
      "topics": [
        "unnest_text"
      ]
    }
  ],
  "_readme": "https://github.com/trinker/textshape/raw/HEAD/README.md",
  "_rundeps": [
    "data.table",
    "slam",
    "stringi"
  ],
  "_score": 7.300143347601125,
  "_indexed": true,
  "_nocasepkg": "textshape",
  "_universes": [
    "trinker"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.7.6",
      "date": "2026-09-30T08:11:46.000Z",
      "distro": "resolute",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/28bc6273d6199f6967e4dbeba0e752f0cc5cfad9224b2c86a86a88c8a638ef4c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "1.7.6",
      "date": "2026-09-30T08:11:17.000Z",
      "distro": "resolute",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/870d4dd9de3e0c396625562c2375c194265b4ae07b05f799dbc3bfd15ea28868",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.7.6",
      "date": "2026-09-30T08:48:35.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/fb5cdba994d2f42771ae44c6fb2837e0e4392892cd44383e9ba5e9c05ef8aded",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "1.7.6",
      "date": "2026-09-30T08:36:27.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/252fab147083fb31cc92b0241cc71980c898ff856b3d3c5a6a2c3b7dbb370a04",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.7.6",
      "date": "2026-09-30T08:11:39.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/fe077c321cd2233c0de6d77c8dedde93b62d1d79d1caa7a847eeef6b14b97642",
      "status": "success",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.7.6",
      "date": "2026-09-30T08:10:15.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/10d98ab5d5ac45b5e0d1bba6471581bcc9577897f20ccdf3fd99a8bfe2cee41f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.7.6",
      "date": "2026-09-30T08:10:31.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/e41380f169e0d876dcc8cb799037df7b177449d0387443f29810efb937d4a8b6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "1.7.6",
      "date": "2026-09-30T08:10:25.000Z",
      "commit": "61dc5f1e0ba817571d97d87751959f78613ad92c",
      "fileid": "https://r2.ropensci.org/e8cb545c23046f05ddd2f8c6f1fb6bd3415030b5fa2cb60d99ac52ad6f8fafde",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trinker/actions/runs/36687571239"
    }
  ]
}