#' Make data frame from list of named vector
#'
#' @param lst A list of named vectors which we want to position in the outputted data frame.
#' @return A data frame whose columns are refernceColumnNames while rows are the vector members of the lst.
#' @export
makeDF_from_list_of_named_vectors = function(lst){
maxlen = max(sapply(lst, length))
o = as.data.frame(matrix(nrow = 1, ncol = maxlen))
# obtaining unique column names
refernceColumnNames = c()
for(i in 1:length(lst)){
refernceColumnNames = c(refernceColumnNames, names(lst[[i]]))
}
refernceColumnNames = unique(refernceColumnNames)
colnames(o) = refernceColumnNames
#
for(i in 1:length(lst)){
if(identical(names(lst[[i]]),refernceColumnNames)){
o = rbind(o,lst[[i]])
}
else{
names_i = names(lst[[i]])
if(!all(names_i %in% refernceColumnNames)){
stop(paste("Some of the names in lst iteration ", toString(i), " is not a member of referenceColumnNames",sep=""))
}
o = rbind(o, rep(NA,maxlen))
matchedColumns = match(names_i,refernceColumnNames)
o[nrow(o),matchedColumns] = lst[[i]]
}
}
o = o[-1,]
row.names(o) = names(lst)
return(o)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.