df.merge: Merge Multiple Data Frames

View source: R/df.merge.R

df.mergeR Documentation

Merge Multiple Data Frames

Description

This function merges data frames by a common column (i.e., matching variable).

Usage

df.merge(..., by, all = TRUE, check = TRUE, output = TRUE)

Arguments

...

a sequence of matrices or data frames and/or matrices to be merged to one.

by

a character string indicating the column used for merging (i.e., matching variable), see 'Details'.

all

logical: if TRUE, then extra rows with NAs will be added to the output for each row in a data frame that has no matching row in another data frame.

check

logical: if TRUE, argument specification is checked.

output

logical: if TRUE, output is shown on the console.

Details

There are following requirements for merging multiple data frames: First, each data frame has the same matching variable specified in the by argument. Second, matching variable in the data frames have all the same class. Third, there are no duplicated values in the matching variable in each data frame. Fourth, there are no missing values in the matching variables. Last, there are no duplicated variable names across the data frames except for the matching variable.

Note that it is possible to specify data frames matrices and/or in the argument .... However, the function always returns a data frame.

Value

Returns a merged data frame.

Author(s)

Takuya Yanagida takuya.yanagida@univie.ac.at

See Also

df.duplicated, df.unique, df.rbind, df.rename, df.sort

Examples

adat <- data.frame(id = c(1, 2, 3),
                   x1 = c(7, 3, 8))

bdat <- data.frame(id = c(1, 2),
                   x2 = c(5, 1))

cdat <- data.frame(id = c(2, 3),
                   y3 = c(7, 9))

ddat <- data.frame(id = 4,
                   y4 = 6)

# Merge adat, bdat, cdat, and data by the variable id
df.merge(adat, bdat, cdat, ddat, by = "id")

# Do not show output on the console
df.merge(adat, bdat, cdat, ddat, by = "id", output = FALSE)

## Not run: 
#--------------------------------------#'
# Error messages

adat <- data.frame(id = c(1, 2, 3),
                   x1 = c(7, 3, 8))

bdat <- data.frame(code = c(1, 2, 3),
                   x2 = c(5, 1, 3))

cdat <- data.frame(id = factor(c(1, 2, 3)),
                   x3 = c(5, 1, 3))

ddat <- data.frame(id = c(1, 2, 2),
                   x2 = c(5, 1, 3))

edat <- data.frame(id = c(1, NA, 3),
                   x2 = c(5, 1, 3))

fdat <- data.frame(id = c(1, 2, 3),
                   x1 = c(5, 1, 3))

# Error: Data frames do not have the same matching variable specified in 'by'.
df.merge(adat, bdat, by = "id")

# Error: Matching variable in the data frames do not all have the same class.
df.merge(adat, cdat, by = "id")

# Error: There are duplicated values in the matching variable specified in 'by'.
df.merge(adat, ddat, by = "id")

# Error: There are missing values in the matching variable specified in 'by'.
df.merge(adat, edat, by = "id")

#' # Error: There are duplicated variable names across data frames.
df.merge(adat, fdat, by = "id")

## End(Not run)

misty documentation built on Nov. 15, 2023, 1:06 a.m.

Related to df.merge in misty...