Type: | Package |
Title: | Helper Functions for Org Files |
Version: | 0.5-0 |
Date: | 2024-01-31 |
Maintainer: | Enrico Schumann <es@enricoschumann.net> |
Description: | Helper functions for Org files (https://orgmode.org/): a generic function 'toOrg' for transforming R objects into Org markup (most useful for data frames; there are also methods for Dates/POSIXt) and a function to read Org tables into data frames. |
License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
Imports: | textutils |
Suggests: | RUnit |
URL: | http://enricoschumann.net/R/packages/orgutils/ |
NeedsCompilation: | no |
Packaged: | 2024-01-31 20:30:27 UTC; es19 |
Author: | Enrico Schumann [aut, cre] |
Repository: | CRAN |
Date/Publication: | 2024-01-31 21:10:02 UTC |
Built: | R 4.5.0; ; 2024-06-01 07:03:19 UTC; unix |
Org Utils
Description
Helper functions to interact with Org files: read Org tables, convert R objects to Org markup.
Details
Org mode is a major mode for Emacs; see https://orgmode.org/manual/Summary.html#Summary for a summary of what it does.
The orgutils package provides helper functions for interacting with Org files (reading Org tables, convert R objects to Org markup) without Emacs. Since Org syntax is very human-readable, such conversions are useful also, for instance, in plain-text emails or reports.
There are several other packages that help you work with Org files as well, such as orgR or ascii.
Author(s)
Enrico Schumann <es@enricoschumann.net>
References
Org mode manual https://orgmode.org/
See Also
Read Org Tables
Description
Read an Org table from a file.
Usage
readOrg(file, header = TRUE, dec = ".", comment.char = "",
encoding = "", strip.white = TRUE,
stringsAsFactors = FALSE,
table.name = NULL, text,
table.missing = NULL, ...)
Arguments
file |
character |
header |
logical |
dec |
character |
comment.char |
character |
encoding |
the encoding of the file |
strip.white |
logical |
stringsAsFactors |
logical: note that the default |
table.name |
character: the name of the table to read (a regular expression) |
text |
character: if |
table.missing |
what to do if a table specified by
|
... |
further arguments |
Details
When header
is TRUE
, readOrg
will read the first
10 lines of the file (or the table, when table.name
is
specified) and try to find an org table header. Formating instructions
such as <5>
are discarded. Then the function uses
read.csv
to read the remainder of the file/table.
When table.name
is specified, the function looks for a line that
starts with #+NAME: <table.name>
and reads the table that
follows that line.
For empty files, readOrg
behaves like read.csv:
when completely empty, it fails; when headers are found, a zero-row
data.frame is returned.
Value
A data.frame
.
Author(s)
Enrico Schumann
References
Org manual https://orgmode.org/manual/index.html
See Also
Examples
## Not run:
## create an Org file with a table and read the table
tmp <-
"#+TITLE: A Table
Next comes a table.
#+name: test_table
| a | b |
|---+---|
| 1 | 2 |
| 3 | 4 |
That was a table.
"
fname <- tempfile("testfile", fileext = ".org")
writeLines(tmp, fname)
require("org")
readOrg(fname, table.name = "test_table")
## End(Not run)
Generate Org-mode Markup
Description
Transform R objects into Org-mode objects.
Usage
toOrg(x, ...)
## S3 method for class 'org'
print(x, ...)
## S3 method for class 'data.frame'
toOrg(x, row.names = NULL, ...)
## S3 method for class 'Date'
toOrg(x, inactive = FALSE, ...)
## S3 method for class 'POSIXt'
toOrg(x, inactive = FALSE, ...)
Arguments
x |
an object |
row.names |
If If |
inactive |
logical: use inactive timestamps? See http://orgmode.org/manual/Creating-timestamps.html . |
... |
other arguments |
Details
Transforms an object x
into character vectors with Org
markup. Most useful when x
is a data.frame.
toOrg
is meant for snippets of code, not for producing whole
Org documents.
When you work with POSIXt
, make sure that a
potential timezone does not cause trouble: Org does
not support timezones.
Value
A character vector, usually with class org
. In some cases,
class character
is additionally attached.
To save it to a file, use writeLines
.
Author(s)
Enrico Schumann
References
Org mode manual https://orgmode.org/manual/index.html
See Also
toLatex
, function as.orgtable
in
microplot
Examples
toOrg(data.frame(a = 1:3, row.names = LETTERS[1:3]))
## => | row.names | a |
## |-----------+---|
## | A | 1 |
## | B | 2 |
## | C | 3 |
toOrg(data.frame(a = 1:3))
## => | a |
## |---|
## | 1 |
## | 2 |
## | 3 |
toOrg(data.frame(a = 1:3), row.names = TRUE)
## => | row.names | a |
## |-----------+---|
## | 1 | 1 |
## | 2 | 2 |
## | 3 | 3 |
toOrg(data.frame(a = 1:5), row.names = "row numbers")
## => | row numbers | a |
## |-------------+---|
## | 1 | 1 |
## | 2 | 2 |
## | 3 | 3 |
## | 4 | 4 |
## | 5 | 5 |
## Not run:
writeLines(toOrg(data.frame(a = 1:3)), "~/Desktop/my_table.org")
## End(Not run)
## Dates/Times
toOrg(as.Date("2015-01-01")) ## <2015-01-01 Thu>
toOrg(as.Date("2015-01-01"), inactive = TRUE) ## [2015-01-01 Thu]
toOrg(Sys.time()) ## <2017-03-20 Mon 13:23:18>
## Convert Org dates to Date
## see ?strptime: Each input string is processed as far as
## necessary for the format specified: any
## trailing characters are ignored.
d <- toOrg(as.Date("2015-01-01"))
as.Date(d, "<%Y-%m-%d")