summary
(and to some extent, dput
). Ideally, only one line for
each ‘basic’ structure is displayed. It is especially well suited
to compactly display the (abbreviated) contents of (possibly nested)
lists. The idea is to give reasonable output for any R
object. It calls args
for (non-primitive) function objects. strOptions()
is a convenience function for setting
options(str = .)
, see the examples.
str(object, ...)
"str"(object, ...)
"str"(object, max.level = NA, vec.len = strO$vec.len, digits.d = strO$digits.d, nchar.max = 128, give.attr = TRUE, give.head = TRUE, give.length = give.head, width = getOption("width"), nest.lev = 0, indent.str = paste(rep.int(" ", max(0, nest.lev + 1)), collapse = ".."), comp.str = "$ ", no.list = FALSE, envir = baseenv(), strict.width = strO$strict.width, formatNum = strO$formatNum, list.len = 99, ...)
strOptions(strict.width = "no", digits.d = 3, vec.len = 4, formatNum = function(x, ...) format(x, trim = TRUE, drop0trailing = TRUE, ...))
vec.len
component of option "str"
(see
options
) which defaults to 4.print
). Defaults to the digits.d
component of
option "str"
which defaults to 3.character
strings. Longer strings are truncated, see
longch
example below.TRUE
(default), show attributes
as sub structures.TRUE
(default), indicate
length (as [1:...]
).TRUE
(default), give (possibly
abbreviated) mode/class and length (as [1:...]
).options("width")
; note that this has only a
weak effect, unless strict.width
is not "no"
.str
.delayedAssign
) objects only.width
argument's
specification should be followed strictly, one of the values
c("no", "cut", "wrap")
.
Defaults to the strict.width
component of option "str"
(see options
) which defaults to "no"
for back
compatibility reasons; "wrap"
uses
strwrap(*, width = width)
whereas "cut"
cuts
directly to width
. Note that a small vec.length
may be better than setting strict.width = "wrap"
.str
does not return anything, for efficiency reasons.
The obvious side effect is output to the terminal.
ls.str
for listing objects with their structure;
summary
, args
.
require(stats); require(grDevices); require(graphics)
## The following examples show some of 'str' capabilities
str(1:12)
str(ls)
str(args) #- more useful than args(args) !
str(freeny)
str(str)
str(.Machine, digits.d = 20) # extra digits for identification of binary numbers
str( lsfit(1:9, 1:9))
str( lsfit(1:9, 1:9), max.level = 1)
str( lsfit(1:9, 1:9), width = 60, strict.width = "cut")
str( lsfit(1:9, 1:9), width = 60, strict.width = "wrap")
op <- options(); str(op) # save first;
# otherwise internal options() is used.
need.dev <-
!exists(".Device") || is.null(.Device) || .Device == "null device"
{ if(need.dev) postscript()
str(par())
if(need.dev) graphics.off()
}
ch <- letters[1:12]; is.na(ch) <- 3:5
str(ch) # character NA's
str(list(a = "A", L = as.list(1:100)), list.len = 9)
nchar(longch <- paste(rep(letters,100), collapse = ""))
str(longch)
str(longch, nchar.max = 52)
str(longch, strict.width = "wrap")
## Settings for narrow transcript :
op <- options(width = 60,
str = strOptions(strict.width = "wrap"))
str(lsfit(1:9,1:9))
str(options())
## reset to previous:
options(op)
str(quote( { A+B; list(C, D) } ))
## S4 classes :
require(stats4)
x <- 0:10; y <- c(26, 17, 13, 12, 20, 5, 9, 8, 5, 4, 8)
ll <- function(ymax = 15, xh = 6)
-sum(dpois(y, lambda=ymax/(1+x/xh), log=TRUE))
fit <- mle(ll)
str(fit)
Run the code above in your browser using DataLab