Costumo usar tibbles e estou bastante satisfeito com eles. O único problema recorrente que me incomoda é ter que adicionar constantemente print(n = ...)
toda vez que quero visualizar mais de 10 linhas. Estou ciente de que poderia convertê-los em quadros de dados usando as.data.frame()
, mas prefiro definir uma opção de impressão global, como print(n=100)
, para todos os tibbles até decidir alterá-la.
Até agora, o que tenho feito é
usandoprint(n=....)
library(dplyr)
mtcars %>%
as_tibble() %>%
print(n=20)
ou usandoas.data.frame()
mtcars %>%
as_tibble() %>%
as.data.frame()
ou com uma função personalizada (semelhante ao recurso data.table)
tar_head_tail <- function(data, nh = 15, nt = 15) {
library(dplyr)
library(crayon)
x <- data %>%
as.data.frame() %>%
tibble::rownames_to_column("row_number") %>%
head(n = nh)
y <- data %>%
as.data.frame() %>%
tibble::rownames_to_column("row_number") %>%
tail(n = nt)
head_tail <- bind_rows(x, y) %>%
tibble::column_to_rownames("row_number")
# Apply color
cat(green("Head:\n"))
print(x)
cat(red("\nTail:\n"))
print(y)
return(invisible(head_tail))
}
iris %>%
tar_head_tail()
Como podemos definir uma opção de impressão global (como print(n=20)) para todos os tibbles até decidirmos alterá-la?
Atualização: O que espero:
Quando eu faço:
mtcars %>%
as_tibble()
deve aparecer após definir global print(n=20):
# A tibble: 32 × 11
mpg cyl disp hp drat wt qsec vs am gear carb
<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
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
11 17.8 6 168. 123 3.92 3.44 18.9 1 0 4 4
12 16.4 8 276. 180 3.07 4.07 17.4 0 0 3 3
13 17.3 8 276. 180 3.07 3.73 17.6 0 0 3 3
14 15.2 8 276. 180 3.07 3.78 18 0 0 3 3
15 10.4 8 472 205 2.93 5.25 18.0 0 0 3 4
16 10.4 8 460 215 3 5.42 17.8 0 0 3 4
17 14.7 8 440 230 3.23 5.34 17.4 0 0 3 4
18 32.4 4 78.7 66 4.08 2.2 19.5 1 1 4 1
19 30.4 4 75.7 52 4.93 1.62 18.5 1 1 4 2
20 33.9 4 71.1 65 4.22 1.84 19.9 1 1 4 1
# ℹ 12 more rows
Quero evitar a linha adicional de print(n=....)
, ou print()
etc ...
dplyr
e outrostidyverse
pacotes são importadospillar
para formatação de saída impressa. Os documentos listam várias opções para controlar como os petiscos são impressos.Para linhas: