read.org.table: Read.table for an Emacs Org Table

View source: R/misc-goodies.R

read.org.tableR Documentation

Read.table for an Emacs Org Table

Description

Read an emacs “Org” table (in file or text) by read.table().

Usage

read.org.table(file, header = TRUE, skip = 0,
               encoding = "native", fileEncoding = "", text, quiet=FALSE, ...)

Arguments

file

a file name, a file or other connection.

header

logical indicating if the org table has header line (in the usual "|"-separated org table format).

skip

integer number of initial lines to skip.

encoding

to be used in the main readLines(file, encoding=encoding) call.

fileEncoding

if file is a file name, i.e., a character string, and fileEncoding is not the empty string, file(file, "rt", encoding = fileEncoding) will be used.

text

instead of file, a character or string (of a few lines, typically).

quiet

logical to suppress the message which is signalled when no nrows=* has been specified and the automatic number of rows is smaller than 95% of the rows / non-header lines of the file.

...

further arguments passed to read.table. You should not use encoding (but possibly fileEncoding!) here, as we do not call read.table on file (but on a textConnection).

Value

a data.frame

Note

TODO: It should be easy to extend read.org.table() to also work for some of the proposed Markdown formats for tables. Please write to maintainer("sfsmisc") or open a github issue if you are interested.

References

Org-Mode Manual on tables, https://orgmode.org/manual/Tables.html

Org tutorial for tables, https://orgmode.org/worg/org-tutorials/tables.html

See Also

CRAN package ascii can write org tables. read.table

Examples

t1 <-
"
| a | var2 |   C |
|---+------+-----|
| 2 | may  | 3.4 |
| 7 | feb  | 4.7 |
"
d <- read.org.table(text = t1)
d
stopifnot(dim(d) == c(2, 3),
          identical(names(d), c("a", "var2", "C")),
          d[,"a"] == c(2,7))


mmaechler/sfsmisc documentation built on Feb. 28, 2024, 4:18 a.m.