Dragoș Moldovan-Grünfeld created ARROW-15862: ------------------------------------------------
Summary: [R][C++] Provide a way to go from integer to duration Key: ARROW-15862 URL: https://issues.apache.org/jira/browse/ARROW-15862 Project: Apache Arrow Issue Type: Improvement Components: C++, R Reporter: Dragoș Moldovan-Grünfeld Currently it is not possible to directly create a duration object from a numeric one (for example through casting). {code:r} library(arrow) a <- Array$create(32L) a$cast(duration("s")) #> Error: NotImplemented: Unsupported cast from int32 to duration using function cast_duration #> /Users/dragos/Documents/arrow/cpp/src/arrow/compute/function.cc:231 DispatchBest(&inputs) {code} This underpins a lot of the date-time arithmetic in R, which support the conversion/ coercion of an integer to difftime (R's equivalent for duration), such as in the pipeline below. {code:r} library(arrow, warn.conflicts = FALSE) #> See arrow_info() for available features library(dplyr, warn.conflicts = FALSE) library(lubridate, warn.conflicts = FALSE) df <- tibble(time = as_datetime(c("2022-03-07 15:00:28", "2022-03-06 14:00:28"))) df #> # A tibble: 2 × 1 #> time #> <dttm> #> 1 2022-03-07 15:00:28 #> 2 2022-03-06 14:00:28 df %>% mutate(time2 = time + seconds(2)) #> # A tibble: 2 × 2 #> time time2 #> <dttm> <dttm> #> 1 2022-03-07 15:00:28 2022-03-07 15:00:30 #> 2 2022-03-06 14:00:28 2022-03-06 14:00:30 {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)