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


R dplyr top_n 選擇頂部(或底部)n 行(按值)

[Superseded] top_n()已被取代slice_min()/slice_max()。雖然它不會在不久的將來被棄用,但退役意味著我們隻會執行關鍵的錯誤修複,因此我們建議轉向更新的替代方案。

top_n() 已被取代,因為該名稱從根本上令人困惑,因為它返回您可能合理地認為是底部行的內容。此外,wt 變量的名稱令人困惑,默認值也很奇怪( DataFrame 中的最後一列)。不幸的是,我們找不到一種簡單的方法來修複現有的 top_n() 函數而不破壞現有代碼,因此我們創建了一個新的替代方案。

用法

top_n(x, n, wt)

top_frac(x, n, wt)

參數

x

一個 DataFrame 。

n

top_n() 返回的行數,top_frac() 返回的行數。如果 n 為正,則選擇頂部行。如果為負,則選擇底部行。如果 x 已分組,則這是每組的行數(或分數)。如果存在平局,將包含更多行。

wt

(可選的)。用於排序的變量。如果未指定,則默認為表中的最後一個變量。

例子

df <- data.frame(x = c(6, 4, 1, 10, 3, 1, 1))

df %>% top_n(2)  # highest values
#> Selecting by x
#>    x
#> 1  6
#> 2 10
df %>% top_n(-2) # lowest values
#> Selecting by x
#>   x
#> 1 1
#> 2 1
#> 3 1
# now use
df %>% slice_max(x, n = 2)
#>    x
#> 1 10
#> 2  6
df %>% slice_min(x, n = 2)
#>   x
#> 1 1
#> 2 1
#> 3 1

# top_frac() -> prop argument of slice_min()/slice_max()
df %>% top_frac(.5)
#> Selecting by x
#>    x
#> 1  6
#> 2  4
#> 3 10
# ->
df %>% slice_max(x, prop = 0.5)
#>    x
#> 1 10
#> 2  6
#> 3  4
源代碼:R/top-n.R

相關用法


注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Select top (or bottom) n rows (by value)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。