transpose | R Documentation |
transpose
is an efficient way to transpose lists
, data.frames
or data.tables
.
transpose(l, fill=NA, ignore.empty=FALSE, keep.names=NULL,
make.names=NULL, list.cols=FALSE)
l |
A list, data.frame or data.table. |
fill |
Default is |
ignore.empty |
Default is |
keep.names |
The name of the first column in the result containing the names of the input; e.g. |
make.names |
The name or number of a column in the input to use as names of the output; e.g. |
list.cols |
Default is |
The list elements (or columns of data.frame
/data.table
) should be all atomic
. If list elements are of unequal lengths, the value provided in fill
will be used so that the resulting list always has all elements of identical lengths. The class of input object is also preserved in the transposed result.
The ignore.empty
argument can be used to skip or include length-0 elements.
This is particularly useful in tasks that require splitting a character column and assigning each part to a separate column. This operation is quite common enough that a function tstrsplit
is exported.
factor
columns are converted to character
type. Attributes are not preserved at the moment. This may change in the future.
A transposed list
, data.frame
or data.table
.
list
outputs will only be named according to make.names
.
data.table
, tstrsplit
ll = list(1:5, 6:8)
transpose(ll)
setDT(transpose(ll, fill=0))[]
DT = data.table(x=1:5, y=6:10)
transpose(DT)
DT = data.table(x=1:3, y=c("a","b","c"))
transpose(DT, list.cols=TRUE)
# base R equivalent of transpose
l = list(1:3, c("a", "b", "c"))
lapply(seq(length(l[[1]])), function(x) lapply(l, `[[`, x))
transpose(l, list.cols=TRUE)
ll = list(nm=c('x', 'y'), 1:2, 3:4)
transpose(ll, make.names="nm")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.