On 18 July 2024 at 12:14, John Muschelli wrote: | Is there a way to have printing data.frames with POSIXct to display | milliseconds if digits.secs is set as a default?
I suspect this would require a change to the corresonding print method. | You can use the digits argument in print, such as print(df, digits = 3) to | get the intended output, but I assumed it was done with the option | digits.secs set. Tibbles by default do this printing, which is shown | below, but I was unsure if digits.secs should affect printing data.frames, | as we see below it affects printing POSIXct outside of a data.frame. | | ``` r | df = structure(list(time = structure(c(1509375600, 1509375600.03333, | 1509375600.06667, 1509375600.1, | 1509375600.13333, 1509375600.16667 | ), class = c("POSIXct", "POSIXt"), tzone = "GMT"), | X = c(0.188, | 0.18, 0.184, 0.184, 0.184, 0.184), | Y = c(0.145, 0.125, 0.121, | 0.121, 0.117, 0.125), | Z = c(-0.984, -0.988, -0.984, -0.992, -0.988, | -0.988)), row.names = c(NA, 6L), class = "data.frame") I like data.table as a (well-behaved) generalisation of data.frame and use it in cases like this (and others). It does what you desire (and I also default to digits.secs=6 in my startup code, and may have another data.table formating option enabled) > data.table::data.table(df) time X Y Z <POSc> <num> <num> <num> 1: 2017-10-30 15:00:00.00000 0.188 0.145 -0.984 2: 2017-10-30 15:00:00.03332 0.180 0.125 -0.988 3: 2017-10-30 15:00:00.06666 0.184 0.121 -0.984 4: 2017-10-30 15:00:00.09999 0.184 0.121 -0.992 5: 2017-10-30 15:00:00.13333 0.184 0.117 -0.988 6: 2017-10-30 15:00:00.16667 0.184 0.125 -0.988 > But I concur that it would be nice to potentially have this for data.frame too. Given the amount of code out there that might be affected a change may have to be conditional on another option. Dirk -- dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel