GithubHelp home page GithubHelp logo

Comments (3)

DavisVaughan avatar DavisVaughan commented on August 17, 2024

@krlmlr, thanks for taking a look at this. Do you need to shift the width parameter too?

# with dev pillar and tibble
library(pillar)
library(rlang)

from <- as.POSIXct("14:03:55", format="%H:%M:%OS", tz="UTC")
to   <- as.POSIXct("14:04:00", format="%H:%M:%OS", tz="UTC")

options(digits.secs = 4)

ex <- tibble::tibble(datetime = seq(from, to, by = 0.01))

ex$col <- 100000

ex
#> # A tibble: 501 x 2
#>    datetime               col
#>    <dttm>               <dbl>
#>  1 2018-01-11 14:03:55.0000 100000
#>  2 2018-01-11 14:03:55.0099 100000
#>  3 2018-01-11 14:03:55.0199 100000
#>  4 2018-01-11 14:03:55.0299 100000
#>  5 2018-01-11 14:03:55.0399 100000
#>  6 2018-01-11 14:03:55.0499 100000
#>  7 2018-01-11 14:03:55.0599 100000
#>  8 2018-01-11 14:03:55.0699 100000
#>  9 2018-01-11 14:03:55.0799 100000
#> 10 2018-01-11 14:03:55.0899 100000
#> # ... with 491 more rows

# This should really be for POSIXt and would need the %||% from rlang
pillar_shaft.POSIXct <- function (x, ...) 
{
  width <- 19
  digits.secs <- getOption("digits.secs") %||% 0
  if (digits.secs) {
    width <- width + digits.secs + 1L
  } 
  
  date <- format(x, format = "%Y-%m-%d")
  time <- format(x, format = "%H:%M:%OS")
  datetime <- paste0(date, " ", style_subtle(time))
  datetime[is.na(x)] <- NA
  new_pillar_shaft_simple(datetime, width = width, align = "left")
}

ex
#> # A tibble: 501 x 2
#>    datetime                    col
#>    <dttm>                    <dbl>
#>  1 2018-01-11 14:03:55.0000 100000
#>  2 2018-01-11 14:03:55.0099 100000
#>  3 2018-01-11 14:03:55.0199 100000
#>  4 2018-01-11 14:03:55.0299 100000
#>  5 2018-01-11 14:03:55.0399 100000
#>  6 2018-01-11 14:03:55.0499 100000
#>  7 2018-01-11 14:03:55.0599 100000
#>  8 2018-01-11 14:03:55.0699 100000
#>  9 2018-01-11 14:03:55.0799 100000
#> 10 2018-01-11 14:03:55.0899 100000
#> # ... with 491 more rows

Created on 2018-01-11 by the reprex package (v0.1.1.9000).

Rationale for my solution is that it solves three cases:

  • User hasn't set the option, should default to NULL which is changed to 0
  • User has set the option to 0
  • User has set the option to >0

from pillar.

krlmlr avatar krlmlr commented on August 17, 2024

@DavisVaughan: Would you mind opening a new issue?

from pillar.

github-actions avatar github-actions commented on August 17, 2024

This old thread has been automatically locked. If you think you have found something related to this, please open a new issue and link to this old issue if necessary.

from pillar.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.