小标题中的列是否有像 tail 这样的功能?

Is there a function like tail for columns in tibbles?

我有一个超过 20 列的小标题,所以当我在控制台中查看它时,只会显示 20 列,即使我最大化 window.

对于只显示最后 n 列的列,是否有像 tail() 这样的函数?

我相信你正在寻找整洁的 select 助手 last_col() 它本身带来了最后一列但是根据 dplyr 网站 https://tidyselect.r-lib.org/reference/everything.html 你也可以在其中有一个偏移量来计算从最后一列向后。

这与select()

一起使用
#returns second to last column

mtcars%>% select(last_col(1))

#pulls in last col and second to last col
## interesting that it is base 0

mtcars%>% select(last_col(0:1))


您可以调整 print() 的参数以获得 tibble 以控制打印到控制台的数量。因此,例如,您可以通过在打印中设置 n 来控制行数,并使用 width 来控制列数。如果您要将 width 设置为 Inf,那么它将打印所有列。

print(mtcars_tibble, n = 15, width = Inf)

输出

# A tibble: 32 × 22
  mpg...1 cyl...2 disp...3 hp...4 drat...5 wt...6 qsec...7 vs...8 am...9 gear...10 carb...11 mpg...12 cyl...13
    <dbl>   <dbl>    <dbl>  <dbl>    <dbl>  <dbl>    <dbl>  <dbl>  <dbl>     <dbl>     <dbl>    <dbl>    <dbl>
1    21         6      160    110     3.9    2.62     16.5      0      1         4         4     21          6
2    21         6      160    110     3.9    2.88     17.0      0      1         4         4     21          6
3    22.8       4      108     93     3.85   2.32     18.6      1      1         4         1     22.8        4
4    21.4       6      258    110     3.08   3.22     19.4      1      0         3         1     21.4        6
5    18.7       8      360    175     3.15   3.44     17.0      0      0         3         2     18.7        8
  disp...14 hp...15 drat...16 wt...17 qsec...18 vs...19 am...20 gear...21 carb...22
      <dbl>   <dbl>     <dbl>   <dbl>     <dbl>   <dbl>   <dbl>     <dbl>     <dbl>
1       160     110      3.9     2.62      16.5       0       1         4         4
2       160     110      3.9     2.88      17.0       0       1         4         4
3       108      93      3.85    2.32      18.6       1       1         4         1
4       258     110      3.08    3.22      19.4       1       0         3         1
5       360     175      3.15    3.44      17.0       0       0         3         2
# … with 27 more rows

但是,您仍然可以使用普通的基本 R 符号对其进行子集化以获得最后 n 列。

n <- 10
print(mtcars_tibble, n = 5, width = Inf)[,(ncol(mtcars_tibble)-n+1):ncol(mtcars_tibble)]

输出

# A tibble: 32 × 10
   cyl...13 disp...14 hp...15 drat...16 wt...17 qsec...18 vs...19 am...20 gear...21 carb...22
      <dbl>     <dbl>   <dbl>     <dbl>   <dbl>     <dbl>   <dbl>   <dbl>     <dbl>     <dbl>
 1        6      160      110      3.9     2.62      16.5       0       1         4         4
 2        6      160      110      3.9     2.88      17.0       0       1         4         4
 3        4      108       93      3.85    2.32      18.6       1       1         4         1
 4        6      258      110      3.08    3.22      19.4       1       0         3         1
 5        8      360      175      3.15    3.44      17.0       0       0         3         2
 6        6      225      105      2.76    3.46      20.2       1       0         3         1
 7        8      360      245      3.21    3.57      15.8       0       0         3         4
 8        4      147.      62      3.69    3.19      20         1       0         4         2
 9        4      141.      95      3.92    3.15      22.9       1       0         4         2
10        6      168.     123      3.92    3.44      18.3       1       0         4         4
# … with 22 more rows

为了简化,我们可以创建自己的打印函数来确定行数和最后一列。

print_tibble <- function(x, y, z) {
  print(x, n = y, width = Inf)[,(ncol(x)-z+1):ncol(x)]
}

print_tibble(mtcars_tibble, 5, 10)