Skip to content

pillar() creates an object that formats a vector. The output uses one row for a title (if given), one row for the type, and vec_size(x) rows for the data.

Usage

pillar(x, title = NULL, width = NULL, ...)

Arguments

x

A vector to format.

title

An optional title for the column. The title will be used "as is", no quoting will be applied.

width

Default width, optional.

...

Passed on to pillar_shaft().

Details

A pillar consists of arbitrary components. The pillar() constructor uses title, type, and data.

All components are formatted via format() when displaying the pillar. A width argument is passed to each format() call.

As of pillar 1.5.0, pillar() returns NULL if the width is insufficient to display the data.

Examples

x <- 123456789 * (10^c(-1, -3, -5, NA, -8, -10))
pillar(x)
#> <pillar>
#>         <dbl>
#> 12345679.    
#>   123457.    
#>     1235.    
#>       NA     
#>        1.23  
#>        0.0123
pillar(-x)
#> <pillar>
#>    <dbl>
#> -1.23e+7
#> -1.23e+5
#> -1.23e+3
#> NA      
#> -1.23e+0
#> -1.23e-2
pillar(runif(10))
#> <pillar>
#>  <dbl>
#> 0.0229
#> 0.816 
#> 0.0921
#> 0.971 
#> 0.934 
#> 0.769 
#> 0.847 
#> 0.0184
#> 0.328 
#> 0.252 
pillar(rcauchy(20))
#> <pillar>
#>   <dbl>
#>  1.08  
#> 10.9   
#>  0.862 
#> -1.46  
#> -1.23  
#>  0.173 
#>  1.09  
#> -2.93  
#> -2.30  
#>  0.368 
#>  1.20  
#>  0.0670
#> -0.215 
#> -8.41  
#> -0.425 
#> -0.622 
#> -0.180 
#>  4.52  
#> -0.155 
#>  2.02  

# Special values are highlighted
pillar(c(runif(5), NA, NaN, Inf, -Inf))
#> <pillar>
#>    <dbl>
#>    0.514
#>    0.865
#>    0.879
#>    0.861
#>    0.356
#>   NA    
#>  NaN    
#>  Inf    
#> -Inf    

# Very wide ranges will be displayed in scientific format
pillar(c(1e10, 1e-10), width = 20)
#> <pillar>
#> <dbl>
#> 1e+10
#> 1e-10
pillar(c(1e10, 1e-10))
#> <pillar>
#> <dbl>
#> 1e+10
#> 1e-10

x <- c(FALSE, NA, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE)
pillar(x)
#> <pillar>
#> <lgl>
#> FALSE
#> NA   
#> FALSE
#> FALSE
#> TRUE 
#> FALSE
#> FALSE
#> TRUE 
#> FALSE
#> TRUE 

x <- c("This is string is rather long", NA, "?", "Short")
pillar(x)
#> <pillar>
#> <chr>                        
#> This is string is rather long
#> NA                           
#> ?                            
#> Short                        
pillar(x, width = 30)
#> <pillar>
#> <chr>                        
#> This is string is rather long
#> NA                           
#> ?                            
#> Short                        
pillar(x, width = 5)
#> <pillar>
#> <chr>
#> This…
#> NA   
#> ?    
#> Short

date <- as.Date("2017-05-15")
pillar(date + c(1, NA, 3:5))
#> <pillar>
#> <date>    
#> 2017-05-16
#> NA        
#> 2017-05-18
#> 2017-05-19
#> 2017-05-20
pillar(as.POSIXct(date) + c(30, NA, 600, 3600, 86400))
#> <pillar>
#> <dttm>             
#> 2017-05-15 00:00:30
#> NA                 
#> 2017-05-15 00:10:00
#> 2017-05-15 01:00:00
#> 2017-05-16 00:00:00