read.opj | R Documentation |
This function parses an OPJ file into a list of objects it consists
of. Items understood by read.opj
include spreadsheets, matrices,
and notes.
read.opj(file, encoding = 'latin1', tree = FALSE, ...)
file |
Path to the OPJ file to parse. Only file paths are supported, not R connections. Path is not expanded automatically. |
encoding |
Encoding of the strings inside the file being opened. This should
correspond to the ANSI code page of Windows installation used to
produce the file. The default of |
tree |
Control the structure of the returned list. When |
... |
The rest of the arguments is passed to |
A named list
containing objects stored in the file.
Spreadsheets are presented as data.frame
s,
with additional attributes
:
comment
contains the fields Long name, Units,
and Comment, joined by \r\n
, if present. Due to a
possible bug in liborigin
, these values are sometimes
followed by @
and some text that wasn't present in
the original document. (In versions prior to v0.2-2 it was called
comments
, which should be still supported until v1.0.)
commands
contains the formula that was used to
create the values of the column (e.g. col(A) * 2 + 1
).
Multi-sheet spreadsheets are stored as named lists of
data.frame
s described above.
Matrices are presented as list
s
of matrix
objects containing numeric
data. dimnames
are also assigned. The list also
has attributes:
commands
contains the formula that was used to
compute the values in the matrix.
Notes are stored as plain strings.
When tree = FALSE
, the list is flat, its names are short names
of the objects, and the comment
attribute of the list
contains the long names of the objects
stored in the file.
When tree = TRUE
, the list names are long names (if present;
short otherwise) and the list itself represents the folder structure
of the project.
While Origin(R) and its scripting language seem to rely on the
short names of the objects being unique across a project,
neither long names nor folder names are guaranteed to
avoid collisions. Tree-like lists returned by read.opj(..., tree =
TRUE)
might be easier to navigate interactively but present problems
if someone gives multiple folders or objects the same long name.
x <- read.opj(system.file('test.opj', package = 'Ropj'))
head(x$Book2, 7)
comment(x$Book2)
attr(x$Book2, 'commands')
with(x$Book1, head(Sheet2 - Sheet1))
x$MBook1$MSheet1[1:4,1:4]
x$Note1
if ('CP1251' %in% iconvlist()) {
# encoding names aren't guaranteed to be supported across all platforms
x <- read.opj(system.file('test.opj', package = 'Ropj'), 'CP1251')
print(x$cyrillic)
}
str(read.opj(system.file('tree.opj', package = 'Ropj'), tree = TRUE))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.