File: JoinTables.Rd

package info (click to toggle)
r-cran-batchtools 0.9.15%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,416 kB
  • sloc: ansic: 172; sh: 156; makefile: 2
file content (88 lines) | stat: -rw-r--r-- 2,535 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/Joins.R
\name{JoinTables}
\alias{JoinTables}
\alias{ijoin}
\alias{ljoin}
\alias{rjoin}
\alias{ojoin}
\alias{sjoin}
\alias{ajoin}
\alias{ujoin}
\title{Inner, Left, Right, Outer, Semi and Anti Join for Data Tables}
\usage{
ijoin(x, y, by = NULL)

ljoin(x, y, by = NULL)

rjoin(x, y, by = NULL)

ojoin(x, y, by = NULL)

sjoin(x, y, by = NULL)

ajoin(x, y, by = NULL)

ujoin(x, y, all.y = FALSE, by = NULL)
}
\arguments{
\item{x}{[\code{\link{data.frame}}]\cr
First data.frame to join.}

\item{y}{[\code{\link{data.frame}}]\cr
Second data.frame to join.}

\item{by}{[\code{character}]\cr
Column name(s) of variables used to match rows in \code{x} and \code{y}.
If not provided, a heuristic similar to the one described in the \pkg{dplyr} vignette is used:
\enumerate{
  \item If \code{x} is keyed, the existing key will be used if \code{y} has the same column(s).
  \item If \code{x} is not keyed, the intersect of common columns names is used if not empty.
  \item Raise an exception.
}
You may pass a named character vector to merge on columns with different names in \code{x} and
\code{y}: \code{by = c("x.id" = "y.id")} will match \code{x}'s \dQuote{x.id} column with \code{y}\'s
\dQuote{y.id} column.}

\item{all.y}{[logical(1)]\cr
Keep columns of \code{y} which are not in \code{x}?}
}
\value{
[\code{\link{data.table}}] with key identical to \code{by}.
}
\description{
These helper functions perform join operations on data tables.
Most of them are basically one-liners.
See \url{https://rpubs.com/ronasta/join_data_tables} for a overview of join operations in
data table or alternatively \pkg{dplyr}'s vignette on two table verbs.
}
\examples{
\dontshow{ batchtools:::example_push_temp(1) }
# Create two tables for demonstration
tmp = makeRegistry(file.dir = NA, make.default = FALSE)
batchMap(identity, x = 1:6, reg = tmp)
x = getJobPars(reg = tmp)
y = findJobs(x >= 2 & x <= 5, reg = tmp)
y$extra.col = head(letters, nrow(y))

# Inner join: similar to intersect(): keep all columns of x and y with common matches
ijoin(x, y)

# Left join: use all ids from x, keep all columns of x and y
ljoin(x, y)

# Right join: use all ids from y, keep all columns of x and y
rjoin(x, y)

# Outer join: similar to union(): keep all columns of x and y with matches in x or y
ojoin(x, y)

# Semi join: filter x with matches in y
sjoin(x, y)

# Anti join: filter x with matches not in y
ajoin(x, y)

# Updating join: Replace values in x with values in y
ujoin(x, y)
}