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


R head 返回對象的第一部分或最後部分


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

說明

返回向量、矩陣、表、 DataFrame 或函數的第一部分或最後部分。由於head()tail() 是通用函數,因此它們也可能已擴展到其他類。

用法

head(x, ...)
## Default S3 method:
head(x, n = 6L, ...)

## S3 method for class 'matrix'
head(x, n = 6L, ...) # is exported as head.matrix()
## NB: The methods for 'data.frame' and 'array'  are identical to the 'matrix' one

## S3 method for class 'ftable'
head(x, n = 6L, ...)
## S3 method for class 'function'
head(x, n = 6L, ...)


tail(x, ...)
## Default S3 method:
tail(x, n = 6L, keepnums = FALSE, addrownums, ...)
## S3 method for class 'matrix'
tail(x, n = 6L, keepnums = TRUE, addrownums, ...) # exported as tail.matrix()
## NB: The methods for 'data.frame', 'array', and 'table'
##     are identical to the  'matrix'  one

## S3 method for class 'ftable'
tail(x, n = 6L, keepnums = FALSE, addrownums, ...)
## S3 method for class 'function'
tail(x, n = 6L, ...)

參數

x

一個東西

n

長度最大為 dim(x) 的整數向量(對於無尺寸對象,為 1)。 logical 被默默地強製為整數。值指定要在對象的相應維度(或沿長度)中選擇的索引。 n[i] 的正值包括該維度中的第一個/最後一個 n[i] 索引,而負值則排除最後一個/第一個 abs(n[i]) ,包括所有剩餘索引。 NA 或非指定值(當 length(n) < length(dim(x)) 時)選擇該維度中的所有索引。必須至少包含一個非缺失值。

keepnums

在每個維度中,如果該維度中不存在名稱,則使用該維度中包含的索引創建它們。如果 dim(x)NULL 或其長度為 1,則忽略。

addrownums

已棄用 - 應使用 keepnums 代替。如果keepnums 未顯式設置,則取keepnums 的值。

...

要傳遞給其他方法或從其他方法傳遞的參數。

細節

對於基於向量/數組的對象, head() ( tail() ) 返回與 x 具有相同維度的子集,通常屬於同一類。由於曆史原因,默認情況下,它們選擇第一維度 ("rows") 中或沿無維度向量長度的前(後)6 個索引,以及任何剩餘維度中的完整範圍(所有索引)。 head.matrix()tail.matrix() 已導出。

head()tail() 的默認方法和數組(/矩陣)方法非常通用。它們將按原樣適用於任何具有 dim() 方法、length() 方法(僅當 dim() 返回 NULL 時才需要)和 [ 方法(接受 drop 參數並可以指定尺寸情況下所有尺寸的子集)。

對於函數,解析函數的行以字符串形式返回。

x 是二維及以上的數組(/矩陣)時,tail() 將添加類似於在所有維度 k 的所有維度 x 的完整打印中顯示的暗名稱,其中指定了 n[k],並且非缺失且 dimnames(x)[[k]] (或 dimnames(x) 本身)是 NULL 。具體來說,對於不同的維度,添加的dimname的形式會有所不同,如下:

k=1(行):

"[n,]"(右對齊,用空格填充)

k=2(列):

"[,n]"(沒有空格填充)

k>2(更高的亮度):

"n" ,即索引作為字符值

設置 keepnums = FALSE 可抑製此行為。

由於 data.frame 子集化 (‘indexing’) 保留 attributes ,因此數據幀的 head()tail() 方法也保留。

一個對象(通常)類似於x,但通常較小。因此,對於 array ,結果對應於 x[.., drop=FALSE] 。對於 ftable 對象 x ,轉換後的 format(x)

注意

對於數組輸入,當 keepnumsTRUEtail 的輸出,為維度 >2 添加的任何暗名稱向量都是該維度中作為字符向量的原始數字索引。這意味著,例如,對於 3 維數組 arrtail(arr, c(2,2,-1))[ , , 2]tail(arr, c(2,2,-1))[ , , "2"] 可能都是有效的,但具有完全不同的含義。

例子

head(letters)
head(letters, n = -6L)

head(freeny.x, n = 10L)
head(freeny.y)

head(iris3)
head(iris3, c(6L, 2L))
head(iris3, c(6L, -1L, 2L))

tail(letters)
tail(letters, n = -6L)

tail(freeny.x)
## the bottom-right "corner" :
tail(freeny.x, n = c(4, 2))
tail(freeny.y)

tail(iris3)
tail(iris3, c(6L, 2L))
tail(iris3, c(6L, -1L, 2L))

## iris with dimnames stripped
a3d <- iris3 ; dimnames(a3d) <- NULL
tail(a3d, c(6, -1, 2)) # keepnums = TRUE is default here!
tail(a3d, c(6, -1, 2), keepnums = FALSE)

## data frame w/ a (non-standard) attribute:
treeS <- structure(trees, foo = "bar")
(n <- nrow(treeS))
stopifnot(exprs = { # attribute is kept
    identical(htS <- head(treeS), treeS[1:6, ])
    identical(attr(htS, "foo") , "bar")
    identical(tlS <- tail(treeS), treeS[(n-5):n, ])
    ## BUT if I use "useAttrib(.)", this is *not* ok, when n is of length 2:
    ## --- because [i,j]-indexing of data frames *also* drops "other" attributes ..
    identical(tail(treeS, 3:2), treeS[(n-2):n, 2:3] )
})

tail(library) # last lines of function

head(stats::ftable(Titanic))

## 1d-array (with named dim) :
a1 <- array(1:7, 7); names(dim(a1)) <- "O2"
stopifnot(exprs = {
  identical( tail(a1, 10), a1)
  identical( head(a1, 10), a1)
  identical( head(a1, 1), a1 [1 , drop=FALSE] ) # was a1[1] in R <= 3.6.x
  identical( tail(a1, 2), a1[6:7])
  identical( tail(a1, 1), a1 [7 , drop=FALSE] ) # was a1[7] in R <= 3.6.x
})

作者

Patrick Burns, improved and corrected by R-Core. Negative argument added by Vincent Goulet. Multi-dimension support added by Gabriel Becker.

相關用法


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