Установить параметр функции, используя difftime и dplyr - PullRequest
0 голосов
/ 01 апреля 2019

Как я могу установить параметр units ="mins" в следующей функции в качестве параметра?

Это просто фрейм данных:

library(tidyverse)

u <- runif(10, 0, 60) 
w <- runif(10, 0, 60) 

df <- tibble(time_1 = as.POSIXct(u, origin = "2019-02-03 08:00:00"),
       time_2 = as.POSIXct(w, origin = "2019-02-03 08:30:00"))

Это моя функция.Я хотел бы иметь возможность изменить параметр для difftime и установить его в качестве параметра, например, единицы = "месяцы".

time_diff <- function(df, stamp1, stamp2){

  stamp1 <- enquo(stamp1)
  stamp2 <- enquo(stamp2)

  name <- paste0(quo_name(stamp1), "_", quo_name(stamp2))

  df %>% 
    mutate(!!name := difftime(!!stamp1, !!stamp2, units="mins"))
}

df %>% 
  time_diff(time_2, time_1)

Но я бы хотел что-то вроде этого:

df %>% 
      time_diff(time_2, time_1, mins)

1 Ответ

1 голос
/ 01 апреля 2019

Как насчет простого добавления параметра units? например,

time_diff <- function(df, stamp1, stamp2, units="mins"){

  stamp1 <- enquo(stamp1)
  stamp2 <- enquo(stamp2)

  name <- paste0(quo_name(stamp1), "_", quo_name(stamp2))

  df %>% 
    mutate(!!name := difftime(!!stamp1, !!stamp2, units=units))
}

Тогда вы можете сделать df %>% time_diff(time_2, time_1, "mins").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...