write.ftsv <- function(data, con, name="unnamed_dataset", rowdim="rows", coldim="cols") { /* If con is a file name, open it */ opened.here = FALSE if (is.character(con)){ con = file(con, "w") opened.here = TRUE } /* Substitute all whitespace with underscores in identifiers */ rows <- paste(gsub("\\s", "_", rownames(data)), collapse=" ") cols <- paste(gsub("\\s", "_", colnames(data)), collapse=" ") /* Write header */ writeLines(c("# type: dataset", paste("# dimension:", rowdim, rows, collapse=' '), paste("# dimension:", coldim, cols, collapse=' '), paste("# name:", name, collapse=' '), ""), con=con) /* Write matrix */ write.table(data, file=con, col.names=FALSE, row.names=FALSE, sep="\t") /* If con was a string, close file now */ if (opened.here) close(con) }