{
  "_id": "6acf2f69d9de2f3f33fc8ca0",
  "Package": "fjoin",
  "Type": "Package",
  "Title": "Data Frame Joins Leveraging 'data.table'",
  "Version": "0.1.1.9000",
  "Authors@R": "c(\nperson(\n\"Toby\", \"Robertson\",\nemail = \"trobx@proton.me\",\nrole = c(\"aut\", \"cre\")\n)\n)",
  "Description": "Extends 'data.table' join functionality, lets it work with\nany data frame class, and provides a familiar 'x'/'y'-style\ninterface, enabling broad use across R. Offers NA-safe matching\nby default, on-the-fly column selection, multiple\nmatch-handling on both sides, 'x' or 'y' row order, and a row\norigin indicator. Performs inner, left, right, full, semi- and\nanti-joins with equality and inequality conditions, plus cross\njoins. Specific support for 'data.table', (grouped) tibble, and\n'sf'/'sfc' objects and their attributes; returns a plain data\nframe otherwise. Avoids data-copying of inputs and outputs.\nAllows displaying the 'data.table' code instead of (or as well\nas) executing it.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "URL": "https://trobx.github.io/fjoin/",
  "BugReports": "https://github.com/trobx/fjoin/issues",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr, quarto",
  "RoxygenNote": "7.3.3",
  "Repository": "https://trobx.r-universe.dev",
  "Date/Publication": "2026-03-18 14:25:03 UTC",
  "RemoteUrl": "https://github.com/trobx/fjoin",
  "RemoteRef": "HEAD",
  "RemoteSha": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-10-14 07:11:15 UTC",
    "User": "root"
  },
  "Author": "Toby Robertson [aut, cre]",
  "Maintainer": "Toby Robertson <trobx@proton.me>",
  "_user": "trobx",
  "_type": "src",
  "_file": "fjoin_0.1.1.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/7c23156203041146b60b5bb2d728fbf6406544fdd9b4598d160902d5d25b6465",
  "_filesize": 376373,
  "_sha256": "7c23156203041146b60b5bb2d728fbf6406544fdd9b4598d160902d5d25b6465",
  "_expires": "2027-01-22T07:29:43.000Z",
  "_created": "2026-10-14T07:11:15.000Z",
  "_published": "2026-10-14T07:29:45.802Z",
  "_buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 115728775247,
      "time": 114,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11875768296"
    },
    {
      "job": 115728775141,
      "time": 128,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11876611058"
    },
    {
      "job": 115728775146,
      "time": 218,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11877240477"
    },
    {
      "job": 115728775260,
      "time": 233,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11876513606"
    },
    {
      "job": 115727803227,
      "time": 171,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11876166305"
    },
    {
      "job": 115728775154,
      "time": 103,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11875788282"
    },
    {
      "job": 115728775186,
      "time": 133,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11876476447"
    },
    {
      "job": 115728775342,
      "time": 119,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11876641011"
    },
    {
      "job": 115728775219,
      "time": 124,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11875684259"
    }
  ],
  "_upstream": "https://github.com/trobx/fjoin",
  "_commit": {
    "id": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
    "author": "Toby Robertson <toby.g.robertson@gmail.com>",
    "committer": "Toby Robertson <toby.g.robertson@gmail.com>",
    "message": "docs/\n",
    "time": 1773843903
  },
  "_maintainer": {
    "name": "Toby Robertson",
    "email": "trobx@proton.me",
    "login": "trobx",
    "description": "",
    "uuid": 165572229
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 3.3.0",
      "role": "Depends"
    },
    {
      "package": "data.table",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "version": ">= 1.1.0",
      "role": "Suggests"
    },
    {
      "package": "sf",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "quarto",
      "role": "Suggests"
    },
    {
      "package": "bench",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    }
  ],
  "_owner": "trobx",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2025-43",
      "n": 1
    },
    {
      "week": "2025-44",
      "n": 9
    },
    {
      "week": "2025-45",
      "n": 1
    },
    {
      "week": "2025-46",
      "n": 13
    },
    {
      "week": "2025-47",
      "n": 5
    },
    {
      "week": "2025-48",
      "n": 1
    },
    {
      "week": "2025-49",
      "n": 8
    },
    {
      "week": "2025-50",
      "n": 6
    },
    {
      "week": "2026-12",
      "n": 5
    }
  ],
  "_tags": [
    {
      "name": "v0.1.0",
      "date": "2025-11-15"
    },
    {
      "name": "v0.1.0-resubmission3",
      "date": "2025-12-06"
    }
  ],
  "_topics": [
    "dataframe",
    "datatable",
    "join",
    "merge",
    "performance",
    "sf",
    "tibble",
    "quarto"
  ],
  "_stars": 4,
  "_contributors": [
    {
      "user": "trobx",
      "count": 232,
      "uuid": 165572229
    },
    {
      "user": "edzer",
      "count": 1,
      "uuid": 520851
    }
  ],
  "_userbio": {
    "uuid": 165572229,
    "type": "user",
    "name": "Toby Robertson",
    "followers": 2
  },
  "_downloads": {
    "count": 328,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/fjoin"
  },
  "_devurl": "https://github.com/trobx/fjoin",
  "_pkgdown": "https://trobx.github.io/fjoin/",
  "_searchresults": 4,
  "_quarto": true,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/fjoin.html",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/trobx/fjoin",
  "_realowner": "trobx",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1.0",
      "date": "2025-12-11"
    },
    {
      "version": "0.1.1",
      "date": "2026-03-18"
    }
  ],
  "_exports": [
    "dtjoin",
    "dtjoin_anti",
    "dtjoin_cross",
    "dtjoin_semi",
    "fjoin_anti",
    "fjoin_cross",
    "fjoin_full",
    "fjoin_inner",
    "fjoin_left",
    "fjoin_left_anti",
    "fjoin_left_semi",
    "fjoin_right",
    "fjoin_right_anti",
    "fjoin_right_semi",
    "fjoin_semi"
  ],
  "_help": [
    {
      "page": "dtjoin",
      "title": "Join data frame-like objects using an extended 'DT[i]'-style interface to data.table",
      "topics": [
        "dtjoin"
      ]
    },
    {
      "page": "dtjoin_anti",
      "title": "Anti-join of 'DT' in a 'DT[i]'-style join of data frame-like objects",
      "topics": [
        "dtjoin_anti"
      ]
    },
    {
      "page": "dtjoin_cross",
      "title": "Cross join of data frame-like objects 'DT' and 'i' using a 'DT[i]'-style interface to data.table",
      "topics": [
        "dtjoin_cross"
      ]
    },
    {
      "page": "dtjoin_semi",
      "title": "Semi-join of 'DT' in a 'DT[i]'-style join of data frame-like objects",
      "topics": [
        "dtjoin_semi"
      ]
    },
    {
      "page": "fjoin_cross",
      "title": "Cross join",
      "topics": [
        "fjoin_cross"
      ]
    },
    {
      "page": "fjoin_full",
      "title": "Full join",
      "topics": [
        "fjoin_full"
      ]
    },
    {
      "page": "fjoin_inner",
      "title": "Inner join",
      "topics": [
        "fjoin_inner"
      ]
    },
    {
      "page": "fjoin_left",
      "title": "Left join",
      "topics": [
        "fjoin_left"
      ]
    },
    {
      "page": "fjoin_left_anti",
      "title": "Left anti-join",
      "topics": [
        "fjoin_anti",
        "fjoin_left_anti"
      ]
    },
    {
      "page": "fjoin_left_semi",
      "title": "Left semi-join",
      "topics": [
        "fjoin_left_semi",
        "fjoin_semi"
      ]
    },
    {
      "page": "fjoin_right",
      "title": "Right join",
      "topics": [
        "fjoin_right"
      ]
    },
    {
      "page": "fjoin_right_anti",
      "title": "Right anti-join",
      "topics": [
        "fjoin_right_anti"
      ]
    },
    {
      "page": "fjoin_right_semi",
      "title": "Right semi-join",
      "topics": [
        "fjoin_right_semi"
      ]
    }
  ],
  "_pkglogo": "https://github.com/trobx/fjoin/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/trobx/fjoin/raw/HEAD/README.md",
  "_rundeps": [
    "data.table"
  ],
  "_vignettes": [
    {
      "source": "fjoin.qmd",
      "filename": "fjoin.html",
      "title": "Guide to fjoin",
      "engine": "quarto::html",
      "headings": [
        "Installation",
        "Features",
        "API",
        "Examples",
        "Example 1: Basic use and options",
        "(1) Basic syntax",
        "(2) Efficient selective joins in one line",
        "(3) Indicator column for row origin",
        "(4) Switch row order from left-then-right to right-then-left",
        "(5) Display code instead of executing",
        "Example 2: Reducing an inequality join from M:M to 1:1 with mult.x and mult.y",
        "(1) For each event, all subsequent reactions (M:M)",
        "(2) For each event, the next reaction (1:M)",
        "(3) For each event, the next reaction, provided there was no intervening event (1:1)",
        "Example 3: Chain of calls from fjoin_* to dtjoin_* to r pkg(\"data.table\")",
        "Performance",
        "Notes for r pkg(\"tidyverse\") users",
        "Notes for r pkg(\"sf\") users",
        "Notes for r pkg(\"data.table\") users",
        "\"Internals\""
      ],
      "created": "2025-03-27 06:54:30",
      "modified": "2025-12-12 20:33:28",
      "commits": 25
    }
  ],
  "_score": 5.2552725051033065,
  "_indexed": true,
  "_nocasepkg": "fjoin",
  "_universes": [
    "trobx"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:03.000Z",
      "distro": "resolute",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/8bd2fb861b2bc373eb61240703f64d3a6908f7f8431fe7658633975bf96ba8d2",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:21.000Z",
      "distro": "resolute",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/75b8449ff4626bf0e8a6d5fdae7b357c3d490251db2ade8c22d1efb27443fba6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:26:28.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/7f9ff242d125f45c10791060d308c7c6114beb7f44cf2b9d3cc8f46b2523bc05",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:28:19.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/c0a053d267aa00d0a9cd88ed6ea24c1e88125f24bce1e6f4247b6ac9275b5e1a",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:14.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/b72ea49e33240cefcefa03ba56a463c2347547317a665d97ee7c4137ba964392",
      "status": "success",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:12.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/efc7438627a383286cc0b77df81059845cf938a51b0aa0b5dbbe3a642d6b2c97",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:00.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/1454dc8a245f26a1686e77e4cb66d2b2f70a83e213e5023a8942d033811596bd",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.1.1.9000",
      "date": "2026-10-14T07:13:05.000Z",
      "commit": "415cb8dd5258f9eb69e22e4d6c10b1ce18f7f985",
      "fileid": "https://r2.ropensci.org/2d2dba84d6805f7b6aa34d727ac5ddcef0c3c0bd1e128b3a6976d79345f502f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/trobx/actions/runs/38526399105"
    }
  ]
}