1set_class <- function(x, class = NULL) { 2 if (is.null(class)) { 3 return(x) 4 } else if ("data.table" %in% class) { 5 if (inherits(x, "data.table")) { 6 return(x) 7 } 8 return(data.table::as.data.table(x)) 9 } else if ("tibble" %in% class || "tbl_df" %in% class || "tbl" %in% class) { 10 if (inherits(x, "tbl")) { 11 return(x) 12 } 13 return(tibble::as_tibble(x)) 14 } 15 out <- structure(x, class = "data.frame") 16 # add row names in case `x` wasn't already a data frame (e.g., matlab list) 17 if (!length(rownames(out))) { 18 rownames(out) <- as.character(seq_len(length(out[,1L,drop = TRUE]))) 19 } 20 return(out) 21} 22