當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R str 緊湊地顯示任意 R 對象的結構


R語言 str 位於 utils 包(package)。

說明

緊湊地顯示內部str的結構R對象,診斷函數和替代方案summary(並且在某種程度上,dput)。理想情況下,每個 ‘basic’ 結構僅顯示一行。它特別適合緊湊地顯示(可能是嵌套的)列表的(縮寫)內容。這個想法是給出合理的輸出任何 R目的。它調用args對於(非原始)函數對象。

strOptions() 是設置 options(str = .) 的便捷函數,請參閱示例。

用法

str(object, ...)

## S3 method for class 'data.frame'
str(object, ...)

## Default S3 method:
str(object, max.level = NA,
    vec.len  = strO$vec.len, digits.d = strO$digits.d,
    nchar.max = 128, give.attr = TRUE,
    drop.deparse.attr = strO$drop.deparse.attr,
    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 = strO$list.len,
    deparse.lines = strO$deparse.lines, ...)

strOptions(strict.width = "no", digits.d = 3, vec.len = 4,
           list.len = 99, deparse.lines = NULL,
           drop.deparse.attr = TRUE,
           formatNum = function(x, ...)
                       format(x, trim = TRUE, drop0trailing = TRUE, ...))

參數

object

任何R您想要了解其一些信息的對象。

max.level

用於顯示嵌套結構的最大嵌套級別,例如包含子列表的列表。默認 NA:顯示所有嵌套級別。

vec.len

數字 (>= 0) 指示每個向量顯示多少個“前幾個”元素。根據向量的類型,該數字乘以不同的因子(從 0.5 到 3)。默認為選項 "str"vec.len 組件(請參閱 options ),默認為 4。

digits.d

數字組件的位數(如 print )。默認為選項 "str"digits.d 組件,默認為 3。

nchar.max

character 字符串顯示的最大字符數。較長的字符串將被截斷,請參閱下麵的 longch 示例。

give.attr

邏輯性;如果TRUE(默認),則將屬性顯示為子結構。

drop.deparse.attr

邏輯性;如果 TRUE (默認),則 deparse(control = <S>)<S> 中不會有 "showAttributes" 。過去被硬編碼為FALSE,因此可以通過strOptions()進行設置以實現向後兼容性。

give.length

邏輯性;如果 TRUE (默認),則指示長度(如 [1:...] )。

give.head

邏輯性;如果 TRUE (默認),請給出(可能縮寫)模式/類和長度(如 <type>[1:...] )。

width

要使用的頁麵寬度。默認是當前活動的options("width");請注意,這隻有很弱的效果,除非 strict.width 不是 "no"

nest.lev

str 的遞歸調用中的當前嵌套級別。

indent.str

要使用的縮進字符串。

comp.str

用於分隔列表組件的字符串。

no.list

邏輯性;如果為真,則不會打印“...列表”或類。

envir

僅用於 Promise(請參閱 delayedAssign )對象的環境。

strict.width

字符串,指示是否應嚴格遵循 width 參數的規範,值為 c("no", "cut", "wrap") 之一,可以縮寫。默認為選項 "str"strict.width 組件(請參閱 options ),出於向後兼容性原因,默認為 "no""wrap" 使用 strwrap(*, width = width)"cut" 直接剪切到 width 。請注意,較小的 vec.length 可能比設置 strict.width = "wrap" 更好。

formatNum

一個函數,例如format用於格式化數字向量。它默認為formatNum期權的組成部分"str",請參閱“Usage”strOptions()上麵,這幾乎向後兼容R<= 2.7.x,但是,使用formatC可能會稍微好一些。

list.len

數字;在一個級別內顯示的列表元素的最大數量。

deparse.lines

默認情況下為數字或 NULL ,當 objectcall 時,確定 deparse()nlines 參數。當 NULL 時,nchar.maxwidth 參數用於確定智能默認值。

...

潛在的進一步參數(由於方法/通用原因需要)。

出於效率原因,str 不會返回任何內容。明顯的副作用是輸出到終端。

注意

請參閱下麵詳細注釋的“示例”。

默認方法嘗試“work always”,但需要對objectclass但沒有自己的str()方法的情況做出一些假設,這是典型的情況:它依賴於"[""[[" 子集方法與 length() 兼容。如果不是這種情況,或者當 is.list(object)TRUE ,但 length(object)length(unclass(object)) 不同時,它將其視為 “irregular” 並將 unclass(object) 的內容報告為 “hidden list”。

例子

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)
##                                     ------------
## " .. [list output truncated] "

## Long strings,   'nchar.max'; 'strict.width' :
nchar(longch <- paste(rep(letters,100), collapse = ""))
str(longch)
str(longch, nchar.max = 52)
str(longch, strict.width = "wrap")

## Multibyte characters in strings:
## Truncation behavior (<-> correct width measurement) for "long" non-ASCII:
idx <- c(65313:65338, 65345:65350)
fwch <- intToUtf8(idx) # full width character string: each has width 2
ch <- strtrim(paste(LETTERS, collapse="._"), 64)
(ncc <- c(c.ch = nchar(ch),   w.ch = nchar(ch,   "w"),
          c.fw = nchar(fwch), w.fw = nchar(fwch, "w")))
stopifnot(unname(ncc) == c(64,64, 32, 64))
## nchar.max: 1st line needs an increase of  2  in order to see  1  (in UTF-8!):
invisible(lapply(60:66, function(N) str(fwch, nchar.max = N)))
invisible(lapply(60:66, function(N) str( ch , nchar.max = N))) # "1 is 1" here


## 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)

作者

Martin Maechler maechler@stat.math.ethz.ch since 1990.

也可以看看

ls.str 用於列出對象及其結構; summaryargs

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Compactly Display the Structure of an Arbitrary R Object。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。