Reads a matrix file under strict assumptions that it is entirely numeric and there are no row or column names present in this file.
It uses readr::read_table()
to do it efficiently.
Intended for outputs such as those of admixture inference approaches.
read_matrix(file, ext = "txt", verbose = TRUE)
A numeric matrix without row or column names.
Input file (whatever is accepted by readr::read_table()
).
If file as given does not exist and is missing the expected extension (see ext
below), the function adds the extension and uses that path if that file exists.
Additionally, the .gz extension is added automatically if the file (after the extension is added as needed) is still not found and did not already contain the .gz extension and adding it points to an existing file.
The desired file extension.
Ignored if file
points to an existing file.
Set to NA
to force file
to exist as-is.
If TRUE
(default) function reports the path of the file being loaded (after autocompleting the extensions).
write_matrix()
, the inverse function.
# to read "data.txt", run like this:
# mat <- read_matrix("data")
# this also works
# mat <- read_matrix("data.txt")
# The following example is more awkward
# because package sample data has to be specified in this weird way:
# read an existing matrix *.txt file
file <- system.file("extdata", 'sample-Q3.txt', package = "genio", mustWork = TRUE)
mat <- read_matrix(file)
mat
# can specify without extension
file <- sub('\\.txt$', '', file) # remove extension from this path on purpose
file # verify .txt is missing
mat <- read_matrix(file) # load it anyway!
mat
Run the code above in your browser using DataLab