{
  "_id": "6a495807f6c47c441949d446",
  "Package": "joyn",
  "Type": "Package",
  "Title": "Tool for Diagnosis of Tables Joins and Complementary Join\nFeatures",
  "Version": "0.3.0.9000",
  "Authors@R": "c(person(given = \"R.Andres\", \nfamily = \"Castaneda\",\nemail = \"acastanedaa@worldbank.org\",\nrole = c(\"aut\", \"cre\")),\nperson(given = \"Zander\",\nfamily = \"Prinsloo\",\nrole = \"aut\",\nemail = \"zprinsloo@worldbank.org\"),\nperson(given = \"Rossana\",\nfamily = \"Tatulli\",\nrole = \"aut\",\nemail = \"rtatulli@worldbank.org\")\n)",
  "Description": "Tool for diagnosing table joins. It combines the speed of\n`collapse` and `data.table`, the flexibility of `dplyr`, and\nthe diagnosis and features of the `merge` command in `Stata`.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://github.com/randrescastaneda/joyn,\nhttps://randrescastaneda.github.io/joyn/",
  "BugReports": "https://github.com/randrescastaneda/joyn/issues",
  "Config/testthat/edition": "3",
  "RoxygenNote": "7.3.2",
  "Roxygen": "list(markdown = TRUE)",
  "VignetteBuilder": "knitr",
  "Repository": "https://randrescastaneda.r-universe.dev",
  "Date/Publication": "2025-12-03 16:23:27 UTC",
  "RemoteUrl": "https://github.com/randrescastaneda/joyn",
  "RemoteRef": "HEAD",
  "RemoteSha": "1bd93c3bd926b6778bb55c33c433636021203bfb",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-07-04 18:55:14 UTC",
    "User": "root"
  },
  "Author": "R.Andres Castaneda [aut, cre],\nZander Prinsloo [aut],\nRossana Tatulli [aut]",
  "Maintainer": "R.Andres Castaneda <acastanedaa@worldbank.org>",
  "_user": "randrescastaneda",
  "_type": "src",
  "_file": "joyn_0.3.0.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/a57fb66006c1239b9533bf3457c03dfcd29089adef51fd8380d132377281d066",
  "_filesize": 709439,
  "_sha256": "a57fb66006c1239b9533bf3457c03dfcd29089adef51fd8380d132377281d066",
  "_expires": "2026-10-12T18:59:17.000Z",
  "_created": "2026-07-04T18:55:14.000Z",
  "_published": "2026-07-04T18:59:19.231Z",
  "_jobs": [
    {
      "job": 85158308435,
      "time": 152,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8084517989"
    },
    {
      "job": 85158308437,
      "time": 206,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8084524234"
    },
    {
      "job": 85158308442,
      "time": 166,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8084517315"
    },
    {
      "job": 85158308436,
      "time": 133,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8084513301"
    },
    {
      "job": 85158049318,
      "time": 233,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8084499266"
    },
    {
      "job": 85158308434,
      "time": 164,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "8084519401"
    },
    {
      "job": 85158308445,
      "time": 97,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "8084511456"
    },
    {
      "job": 85158308448,
      "time": 101,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "8084511918"
    },
    {
      "job": 85158308525,
      "time": 111,
      "config": "windows-release",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "8084512939"
    }
  ],
  "_host": "GitHub-Actions",
  "_buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067",
  "_status": "success",
  "_upstream": "https://github.com/randrescastaneda/joyn",
  "_commit": {
    "id": "1bd93c3bd926b6778bb55c33c433636021203bfb",
    "author": "R.Andres Castaneda <acastanedaa@worldbank.org>",
    "committer": "R.Andres Castaneda <acastanedaa@worldbank.org>",
    "message": "Increment version number to 0.3.0.9000\n",
    "time": 1764779007
  },
  "_maintainer": {
    "name": "R.Andres Castaneda",
    "email": "acastanedaa@worldbank.org",
    "login": "randrescastaneda",
    "description": "Senior Economist/Data Scientist",
    "uuid": 35301997
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.2.0",
      "role": "Depends"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "cli",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "collapse",
      "version": ">= 2.0.15",
      "role": "Imports"
    },
    {
      "package": "lifecycle",
      "role": "Imports"
    },
    {
      "package": "glue",
      "role": "Imports"
    },
    {
      "package": "badger",
      "role": "Suggests"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "withr",
      "role": "Suggests"
    },
    {
      "package": "dplyr",
      "role": "Suggests"
    },
    {
      "package": "tibble",
      "role": "Suggests"
    },
    {
      "package": "fs",
      "role": "Suggests"
    }
  ],
  "_owner": "randrescastaneda",
  "_selfowned": true,
  "_usedby": 2,
  "_updates": [
    {
      "week": "2025-37",
      "n": 1
    },
    {
      "week": "2025-49",
      "n": 2
    }
  ],
  "_tags": [
    {
      "name": "v0.3.0",
      "date": "2025-12-03"
    }
  ],
  "_topics": [
    "join",
    "merge"
  ],
  "_stars": 9,
  "_contributors": [
    {
      "user": "randrescastaneda",
      "count": 455,
      "uuid": 35301997
    },
    {
      "user": "rossanatat",
      "count": 316,
      "uuid": 150610573
    },
    {
      "user": "zander-prinsloo",
      "count": 104,
      "uuid": 62433917
    },
    {
      "user": "krlmlr",
      "count": 1,
      "uuid": 1741643
    }
  ],
  "_userbio": {
    "uuid": 35301997,
    "type": "user",
    "name": "R.Andrés Castañeda",
    "followers": 52,
    "description": "Senior Economist/Data Scientist"
  },
  "_downloads": {
    "count": 400,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/joyn"
  },
  "_devurl": "https://github.com/randrescastaneda/joyn",
  "_pkgdown": "https://randrescastaneda.github.io/joyn/",
  "_searchresults": 41,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/joyn.html",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/randrescastaneda/joyn",
  "_realowner": "randrescastaneda",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.0.1",
      "date": "2021-04-02"
    },
    {
      "version": "0.1.3",
      "date": "2021-04-28"
    },
    {
      "version": "0.1.4",
      "date": "2021-12-14"
    },
    {
      "version": "0.2.0",
      "date": "2024-03-30"
    },
    {
      "version": "0.2.2",
      "date": "2024-07-10"
    },
    {
      "version": "0.2.3",
      "date": "2024-08-21"
    },
    {
      "version": "0.2.4",
      "date": "2024-12-13"
    },
    {
      "version": "0.3.0",
      "date": "2025-12-11"
    }
  ],
  "_exports": [
    "anti_join",
    "freq_table",
    "full_join",
    "get_joyn_options",
    "inner_join",
    "is_balanced",
    "is_id",
    "joyn",
    "joyn_msg",
    "joyn_report",
    "left_join",
    "merge",
    "possible_ids",
    "rename_to_valid",
    "right_join",
    "set_joyn_options"
  ],
  "_help": [
    {
      "page": "anti_join",
      "title": "Anti join on two data frames",
      "concept": [
        "dplyr alternatives"
      ],
      "topics": [
        "anti_join"
      ]
    },
    {
      "page": "freq_table",
      "title": "Tabulate simple frequencies",
      "topics": [
        "freq_table"
      ]
    },
    {
      "page": "full_join",
      "title": "Full join two data frames",
      "concept": [
        "dplyr alternatives"
      ],
      "topics": [
        "full_join"
      ]
    },
    {
      "page": "get_joyn_options",
      "title": "Get joyn options",
      "concept": [
        "options"
      ],
      "topics": [
        "get_joyn_options"
      ]
    },
    {
      "page": "inner_join",
      "title": "Inner join two data frames",
      "concept": [
        "dplyr alternatives"
      ],
      "topics": [
        "inner_join"
      ]
    },
    {
      "page": "is_balanced",
      "title": "Is data frame balanced by group?",
      "topics": [
        "is_balanced"
      ]
    },
    {
      "page": "is_id",
      "title": "Check if dt is uniquely identified by 'by' variable",
      "topics": [
        "is_id"
      ]
    },
    {
      "page": "joyn",
      "title": "Join two tables",
      "topics": [
        "joyn"
      ]
    },
    {
      "page": "joyn_msg",
      "title": "display type of joyn message",
      "concept": [
        "messages"
      ],
      "topics": [
        "joyn_msg"
      ]
    },
    {
      "page": "joyn_report",
      "title": "Print JOYn report table",
      "concept": [
        "messages"
      ],
      "topics": [
        "joyn_report"
      ]
    },
    {
      "page": "left_join",
      "title": "Left join two data frames",
      "concept": [
        "dplyr alternatives"
      ],
      "topics": [
        "left_join"
      ]
    },
    {
      "page": "merge",
      "title": "Merge two data frames",
      "topics": [
        "merge"
      ]
    },
    {
      "page": "possible_ids",
      "title": "Find possible unique identifies of data frame",
      "topics": [
        "possible_ids"
      ]
    },
    {
      "page": "rename_to_valid",
      "title": "Rename to syntactically valid names",
      "topics": [
        "rename_to_valid"
      ]
    },
    {
      "page": "right_join",
      "title": "Right join two data frames",
      "concept": [
        "dplyr alternatives"
      ],
      "topics": [
        "right_join"
      ]
    },
    {
      "page": "set_joyn_options",
      "title": "Set joyn options",
      "concept": [
        "options"
      ],
      "topics": [
        "set_joyn_options"
      ]
    }
  ],
  "_readme": "https://github.com/randrescastaneda/joyn/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "collapse",
    "data.table",
    "glue",
    "lifecycle",
    "Rcpp",
    "rlang"
  ],
  "_vignettes": [
    {
      "source": "merge-wrapper.Rmd",
      "filename": "merge-wrapper.html",
      "title": "data.table::merge() wrapper",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Examples",
        "Simple merge",
        "Going further"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-03-29 18:12:24",
      "commits": 2
    },
    {
      "source": "aux-functions.Rmd",
      "filename": "aux-functions.html",
      "title": "Additional functions",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Verifying if dt is uniquely identified",
        "Possible unique identifiers",
        "Verifying if data table is balanced",
        "Tabulating simple frequencies"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-12-18 21:02:03",
      "commits": 3
    },
    {
      "source": "adv-functionalities.Rmd",
      "filename": "adv-functionalities.html",
      "title": "Advanced functionalities",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Advanced use",
        "1. Use variable country as one of the key variables",
        "2. Ignore the values of country from y and don't bring it into the resulting table",
        "3. Update only NAs in table x",
        "4. Update actual values in table x",
        "5. Keep original country variable from y into returning table",
        "(Keep matching-names variable from y into x -not updating values in x)",
        "Bring other variables from y into returning table"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-02-22 01:47:45",
      "commits": 1
    },
    {
      "source": "dplyr-joins.Rmd",
      "filename": "dplyr-joins.html",
      "title": "dplyr joins wrappers",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Rationale",
        "Some examples",
        "1. Left join",
        "2. Right join",
        "3. Full join",
        "4. Inner join"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-03-29 18:12:24",
      "commits": 2
    },
    {
      "source": "main-functionalities.Rmd",
      "filename": "main-functionalities.html",
      "title": "Main functionalities",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "General use",
        "The basics",
        "Reporting variable",
        "Key variables",
        "Match type",
        "Type of join",
        "An important feature: JOYn report and info display"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-02-22 01:47:45",
      "commits": 1
    },
    {
      "source": "messages.Rmd",
      "filename": "messages.html",
      "title": "Messages",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Information messages ℹ",
        "Timing messages 🔵",
        "Warning messages ⚠️",
        "Error messages ❌",
        "Additional: How to visualize joyn messages?"
      ],
      "created": "2024-02-22 01:47:45",
      "modified": "2024-03-29 18:12:24",
      "commits": 2
    }
  ],
  "_score": 7.60045012164601,
  "_indexed": true,
  "_nocasepkg": "joyn",
  "_universes": [
    "randrescastaneda"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:57:37.000Z",
      "distro": "resolute",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/fa9174886dcc5ed89c3640c0d9293d6c0a4c0168d0b55c64434341e27b76b134",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:58:24.000Z",
      "distro": "resolute",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/765d0c390119a2658831a8a5391bb295bf1323eba03601338aefaf44fb3f30e7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:57:36.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/299527cc51eea3273b589f504e6efd6a209ad47b5d3bcd6391810f6972dda01e",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:57:04.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/d0ae043c2cbd853d39793ea8b7fa7a7504007eb6ae13ce883fcdee4c5bd01792",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:58:17.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/78f82826cc9d0cb1ff160b7ade7f7b8e09fec52051044657f6f8cff5582dc7b7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:56:27.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/2d3d02ff06c0a680faa654eca4f85e9c596f507a2d241090258632aacafdb02c",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:56:31.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/e40c356389210704236a2f684ecb7f4aa09fc8d2b4404954f626a0f6cf0ba94b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.3.0.9000",
      "date": "2026-07-04T18:56:37.000Z",
      "commit": "1bd93c3bd926b6778bb55c33c433636021203bfb",
      "fileid": "https://r2.ropensci.org/d637a35a80b9077d06f212a4264313e49fb534eb13386195c1a5f79d778c437b",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/randrescastaneda/actions/runs/28716237067"
    }
  ]
}