Here is one approach:

tmp <- data.frame(min=seq(0,150, by=15))

tmp %>%
  mutate(hm=sprintf("%2d Hour%s %2d Minutes",
                    min %/% 60, ifelse((min %/% 60) == 1, " ", "s"),
                    min %% 60))

You could replace `sprintf` with `str_glue` (and update the syntax as
well) if you realy need tidyverse, but you would also loose some
formatting capability.

I don't know of tidyverse versions of `%/%` or `%%`.  If you need the
numeric values instead of a string then just remove the `sprintf` and
use mutate directly with `min %/% 60` and `min %% 60`.

This of course assumes all of your data is in minutes (by the time you
pipe to this code) and that all hours have 60 minutes (I don't know of
any leap hours.

On Sun, Mar 21, 2021 at 8:31 AM Dr Eberhard W Lisse <nos...@lisse.na> wrote:
>
> Hi,
>
> I have minutes worked by day (with some more information)
>
> which when using
>
>         library(tidyverse)
>         library(lubridate)
>
> run through
>
>         CONSMINUTES %>%
>                 select(datum, dauer) %>%
>                 arrange(desc(datum))
>
> look somewhat like
>
>         # A tibble: 142 x 2
>            datum      dauer
>            <date>     <int>
>          1 2021-03-18    30
>          2 2021-03-17    30
>          3 2021-03-16    30
>          4 2021-03-16    30
>          5 2021-03-16    30
>          6 2021-03-16    30
>          7 2021-03-11    30
>          8 2021-03-11    30
>          9 2021-03-11    30
>         10 2021-03-11    30
>         # … with 132 more rows
>
> I can extract minutes per hour
>
>         CONSMINUTES %>%
>         select(datum, dauer) %>%
>         group_by(week = format(datum, '%Y %V'))%>%
>         summarise_if(is.numeric, sum)
>
> and minutes per month
>
>         CONSMINUTES %>%
>         select(datum, dauer) %>%
>         group_by(month = format(datum, '%Y %m'))%>%
>         summarise_if(is.numeric, sum)
>
> I need to show the time worked per week per month in the format of
>
>         '# hours # minutes'
>
> and would like to also be able to show the average time per week per
> month.
>
> How can I do that (preferably with tidyverse :-)-O)?
>
> greetings, el
>
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Gregory (Greg) L. Snow Ph.D.
538...@gmail.com

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to