Git Product home page Git Product logo

Comments (2)

markfairbanks avatar markfairbanks commented on August 20, 2024

This is actually a difference between tidytable and dplyr/dtplyr. You can't create columns on the fly in group_by(). Instead you'll have to use mutate() first.

suppressMessages(library(tidytable))
suppressMessages(library(lubridate))

time <- "2023-10-04 9:59:58 AM"
x <- as.POSIXct(time)
timestamp <- c(format(seq(x, by="3 min", length.out=7), "%Y-%m-%d %H:%M:%S"))

len <- length(timestamp)
value <- seq(from = 1, to = 10, length.out = len)
df <- data.table(timestamp = timestamp,
                 value = value)

df$timestamp <- as.POSIXct(df$timestamp)

df %>%
  mutate(interval = ceiling_date(timestamp, "15 minutes")) %>%
  group_by(interval) %>%
  summarise(average_value = mean(value))
#> # A tidytable: 3 × 2
#>   interval            average_value
#>   <dttm>                      <dbl>
#> 1 2023-10-04 10:00:00           1  
#> 2 2023-10-04 10:15:00           5.5
#> 3 2023-10-04 10:30:00          10

Unlike dplyr you can use tidyselect helpers (like where()/starts_with()/ends_with()) inside group_by()..

df <- tidytable(chr1 = c("a", "a", "b"),
                chr2 = c("a", "a", "b"),
                vals = 1:3)

df %>%
  group_by(where(is.character)) %>%
  summarize(mean_vals = mean(vals))
#> # A tidytable: 2 × 3
#> # Groups:      chr1
#>   chr1  chr2  mean_vals
#>   <chr> <chr>     <dbl>
#> 1 a     a           1.5
#> 2 b     b           3

I made this as a design decision a loooong time ago so unfortunately I can't change it now, even though it does make tidytable operate slightly differently than dplyr.

from tidytable.

nev-awaken avatar nev-awaken commented on August 20, 2024

Thanks for the info

from tidytable.

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.