Convert map from data.frame or DataFrame to list and vice versa
Source:R/listToMap.R
, R/mapToList.R
mapToList.Rd
The mapToList
function provides a convenient way of reordering a
data.frame
to a list
. The listToMap
function does the
opposite by taking a list
and converting it to DataFrame
.
Arguments
- listmap
A named
list
object containingDataFrame
s with "primary" and "colname" columns- fill
logical(1)
Whether to fill the map with an emptyDataFrame
when empty elements are present in the input list- dfmap
A
data.frame
orDataFrame
object with identifiers in the first column- assayCol
A character vector of length one indicating the assay names column
Examples
example("MultiAssayExperiment")
#>
#> MltAsE> ## Run the example ExperimentList
#> MltAsE> example("ExperimentList")
#>
#> ExprmL> ## Create an empty ExperimentList instance
#> ExprmL> ExperimentList()
#> ExperimentList class object of length 0:
#>
#> ExprmL> ## Create array matrix and AnnotatedDataFrame to create an ExpressionSet class
#> ExprmL> arraydat <- matrix(data = seq(101, length.out = 20), ncol = 4,
#> ExprmL+ dimnames = list(
#> ExprmL+ c("ENST00000294241", "ENST00000355076",
#> ExprmL+ "ENST00000383706","ENST00000234812", "ENST00000383323"),
#> ExprmL+ c("array1", "array2", "array3", "array4")
#> ExprmL+ ))
#>
#> ExprmL> colDat <- data.frame(slope53 = rnorm(4),
#> ExprmL+ row.names = c("array1", "array2", "array3", "array4"))
#>
#> ExprmL> ## SummarizedExperiment constructor
#> ExprmL> exprdat <- SummarizedExperiment::SummarizedExperiment(arraydat,
#> ExprmL+ colData = colDat)
#>
#> ExprmL> ## Create a sample methylation dataset
#> ExprmL> methyldat <- matrix(data = seq(1, length.out = 25), ncol = 5,
#> ExprmL+ dimnames = list(
#> ExprmL+ c("ENST00000355076", "ENST00000383706",
#> ExprmL+ "ENST00000383323", "ENST00000234812", "ENST00000294241"),
#> ExprmL+ c("methyl1", "methyl2", "methyl3",
#> ExprmL+ "methyl4", "methyl5")
#> ExprmL+ ))
#>
#> ExprmL> ## Create a sample RNASeqGene dataset
#> ExprmL> rnadat <- matrix(
#> ExprmL+ data = sample(c(46851, 5, 19, 13, 2197, 507,
#> ExprmL+ 84318, 126, 17, 21, 23979, 614), size = 20, replace = TRUE),
#> ExprmL+ ncol = 4,
#> ExprmL+ dimnames = list(
#> ExprmL+ c("XIST", "RPS4Y1", "KDM5D", "ENST00000383323", "ENST00000234812"),
#> ExprmL+ c("samparray1", "samparray2", "samparray3", "samparray4")
#> ExprmL+ ))
#>
#> ExprmL> ## Create a mock RangedSummarizedExperiment from a data.frame
#> ExprmL> rangedat <- data.frame(chr="chr2", start = 11:15, end = 12:16,
#> ExprmL+ strand = c("+", "-", "+", "*", "."),
#> ExprmL+ samp0 = c(0,0,1,1,1), samp1 = c(1,0,1,0,1), samp2 = c(0,1,0,1,0),
#> ExprmL+ row.names = c(paste0("ENST", "00000", 135411:135414), "ENST00000383323"))
#>
#> ExprmL> rangeSE <- SummarizedExperiment::makeSummarizedExperimentFromDataFrame(rangedat)
#>
#> ExprmL> ## Combine to a named list and call the ExperimentList constructor function
#> ExprmL> assayList <- list(Affy = exprdat, Methyl450k = methyldat, RNASeqGene = rnadat,
#> ExprmL+ GISTIC = rangeSE)
#>
#> ExprmL> ## Use the ExperimentList constructor
#> ExprmL> ExpList <- ExperimentList(assayList)
#>
#> MltAsE> ## Create sample maps for each experiment
#> MltAsE> exprmap <- data.frame(
#> MltAsE+ primary = c("Jack", "Jill", "Barbara", "Bob"),
#> MltAsE+ colname = c("array1", "array2", "array3", "array4"),
#> MltAsE+ stringsAsFactors = FALSE)
#>
#> MltAsE> methylmap <- data.frame(
#> MltAsE+ primary = c("Jack", "Jack", "Jill", "Barbara", "Bob"),
#> MltAsE+ colname = c("methyl1", "methyl2", "methyl3", "methyl4", "methyl5"),
#> MltAsE+ stringsAsFactors = FALSE)
#>
#> MltAsE> rnamap <- data.frame(
#> MltAsE+ primary = c("Jack", "Jill", "Bob", "Barbara"),
#> MltAsE+ colname = c("samparray1", "samparray2", "samparray3", "samparray4"),
#> MltAsE+ stringsAsFactors = FALSE)
#>
#> MltAsE> gistmap <- data.frame(
#> MltAsE+ primary = c("Jack", "Bob", "Jill"),
#> MltAsE+ colname = c("samp0", "samp1", "samp2"),
#> MltAsE+ stringsAsFactors = FALSE)
#>
#> MltAsE> ## Combine as a named list and convert to a DataFrame
#> MltAsE> maplist <- list(Affy = exprmap, Methyl450k = methylmap,
#> MltAsE+ RNASeqGene = rnamap, GISTIC = gistmap)
#>
#> MltAsE> ## Create a sampleMap
#> MltAsE> sampMap <- listToMap(maplist)
#>
#> MltAsE> ## Create an example phenotype data
#> MltAsE> colDat <- data.frame(sex = c("M", "F", "M", "F"), age = 38:41,
#> MltAsE+ row.names = c("Jack", "Jill", "Bob", "Barbara"))
#>
#> MltAsE> ## Create a MultiAssayExperiment instance
#> MltAsE> mae <- MultiAssayExperiment(experiments = ExpList, colData = colDat,
#> MltAsE+ sampleMap = sampMap)
## Create a sampleMap from a list using the listToMap function
sampMap <- listToMap(maplist)
## The inverse operation is also available
maplist <- mapToList(sampMap)