'Suppressing the column classes for "tibbles"

How do you suppress the column classes when displaying tibbles? For example,

> cars <- as_tibble(mtcars)
> cars
# A tibble: 32 x 11
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  # <-- I don't want to show this row
 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
# ... with 22 more rows

Is there a global option? Something along the lines of options("show.tibble.column.classes"=FALSE).

I'd also like to remove them for all output created from a tibble (tbl_df).

> count(cars, cyl)
# A tibble: 3 x 2
    cyl     n
  <dbl> <int>  # <-- omit this row totally.
1     4    11
2     6     7
3     8    14


Solution 1:[1]

Is this what you want?

cat(format(as_tibble(mtcars))[-3L], sep = "\n")

Output

# A tibble: 32 x 11
     mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
 1  21       6  160    110  3.9   2.62  16.5     0     1     4     4
 2  21       6  160    110  3.9   2.88  17.0     0     1     4     4
 3  22.8     4  108     93  3.85  2.32  18.6     1     1     4     1
 4  21.4     6  258    110  3.08  3.22  19.4     1     0     3     1
 5  18.7     8  360    175  3.15  3.44  17.0     0     0     3     2
 6  18.1     6  225    105  2.76  3.46  20.2     1     0     3     1
 7  14.3     8  360    245  3.21  3.57  15.8     0     0     3     4
 8  24.4     4  147.    62  3.69  3.19  20       1     0     4     2
 9  22.8     4  141.    95  3.92  3.15  22.9     1     0     4     2
10  19.2     6  168.   123  3.92  3.44  18.3     1     0     4     4
# ... with 22 more rows

Explanations

?tibble::print.tbl shows that the class tbl_df is associated with the following format method:

Usage

## S3 method for class 'tbl_df'
format(x, ..., n = NULL, width = NULL, n_extra = NULL)

The format method converts a tibble into a character vector, each element of which is a line to be printed. The third line is for variable types. To get the desired output, we just need to remove that line and cat() the rest as is.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1