Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

interleave

Interleave Rows of Data Frames or Matrices


Description

Interleave rows of data frames or Matrices.

Usage

interleave(..., append.source=TRUE, sep=": ", drop=FALSE)

Arguments

...

objects to be interleaved

append.source

Boolean Flag. When TRUE (the default) the argument name will be appended to the row names to show the source of each row.

sep

Separator between the original row name and the object name.

drop

boolean flag - When TRUE, matrices containing one column will be converted to vectors.

Details

This function creates a new matrix or data frame from its arguments.

The new object will have all of the rows from the source objects interleaved. IE, it will contain row 1 of object 1, followed by row 1 of object 2, .. row 1 of object 'n', row 2 of object 1, row 2 of object 2, ... row 2 of object 'n' ...

Value

Matrix containing the interleaved rows of the function arguments.

Author(s)

Gregory R. Warnes greg@warnes.net

See Also

Examples

# Simple example
a <- matrix(1:10,ncol=2,byrow=TRUE)
b <- matrix(letters[1:10],ncol=2,byrow=TRUE)
c <- matrix(LETTERS[1:10],ncol=2,byrow=TRUE)
interleave(a,b,c)

# Useful example:
#
# Create a 2-way table of means, standard errors, and # obs

g1 <- sample(letters[1:5], 1000, replace=TRUE)
g2 <- sample(LETTERS[1:3], 1000, replace=TRUE )
dat <- rnorm(1000)

stderr <- function(x) sqrt( var(x,na.rm=TRUE) / nobs(x) )

means   <- tapply(dat, list(g1, g2), mean )
stderrs <- tapply(dat, list(g1, g2), stderr )
ns      <- tapply(dat, list(g1, g2), nobs )
blanks <- matrix( " ", nrow=5, ncol=3)

tab <- interleave( "Mean"=round(means,2),
                   "Std Err"=round(stderrs,2),
                   "N"=ns, " " = blanks, sep=" " )

print(tab, quote=FALSE)

# Using drop to control coercion to a lower dimensions:

m1 <- matrix(1:4)
m2 <- matrix(5:8)

interleave(m1, m2, drop=TRUE)  # This will be coerced to a vector

interleave(m1, m2, drop=FALSE) # This will remain a matrix

gdata

Various R Programming Tools for Data Manipulation

v2.18.0
GPL-2
Authors
Gregory R. Warnes, Ben Bolker, Gregor Gorjanc, Gabor Grothendieck, Ales Korosec, Thomas Lumley, Don MacQueen, Arni Magnusson, Jim Rogers, and others
Initial release
2017-06-05

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.