bindData {gdata} | R Documentation |
Bind two data frames into a multivariate data frame
Description
Usually data frames represent one set of variables and one needs to
bind/join them for multivariate analysis. When merge
is not
the approriate solution, bindData
might perform an appropriate binding
for two data frames. This is especially usefull when some variables are
measured once, while others are repeated.
Usage
bindData(x, y, common)
Arguments
x |
data.frame |
y |
data.frame |
common |
character, list of column names that are common to both input data frames |
Details
Data frames are joined in a such a way, that the new data frame has
c + (n_1 - c) + (n_2 - c)
columns, where c
is the number of
common columns, and n_1
and n_2
are the number of columns
in the first and in the second data frame, respectively.
Value
A data frame.
Author(s)
Gregor Gorjanc
See Also
Examples
n1 <- 6
n2 <- 12
n3 <- 4
## Single trait 1
num <- c(5:n1, 10:13)
(tmp1 <- data.frame(y1=rnorm(n=n1),
f1=factor(rep(c("A", "B"), n1/2)),
ch=letters[num],
fa=factor(letters[num]),
nu=(num) + 0.5,
id=factor(num), stringsAsFactors=FALSE))
## Single trait 2 with repeated records, some subjects also in tmp1
num <- 4:9
(tmp2 <- data.frame(y2=rnorm(n=n2),
f2=factor(rep(c("C", "D"), n2/2)),
ch=letters[rep(num, times=2)],
fa=factor(letters[rep(c(num), times=2)]),
nu=c((num) + 0.5, (num) + 0.25),
id=factor(rep(num, times=2)), stringsAsFactors=FALSE))
## Single trait 3 with completely distinct set of subjects
num <- 1:4
(tmp3 <- data.frame(y3=rnorm(n=n3),
f3=factor(rep(c("E", "F"), n3/2)),
ch=letters[num],
fa=factor(letters[num]),
nu=(num) + 0.5,
id=factor(num), stringsAsFactors=FALSE))
## Combine all datasets
(tmp12 <- bindData(x=tmp1, y=tmp2, common=c("id", "nu", "ch", "fa")))
(tmp123 <- bindData(x=tmp12, y=tmp3, common=c("id", "nu", "ch", "fa")))
## Sort by subject
tmp123[order(tmp123$ch), ]
[Package gdata version 3.0.0 Index]