[ 
https://issues.apache.org/jira/browse/ARROW-16316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17527500#comment-17527500
 ] 

Dragoș Moldovan-Grünfeld edited comment on ARROW-16316 at 4/25/22 1:46 PM:
---------------------------------------------------------------------------

In terms of syntax, I think what you are looking for might be:
{code:r}
call_function("round_temporal", arrow_now, options = list(unit = "day"))
{code}
How did I figure it out? The error message mentioned that {{round_temporal}} 
accepts 1 argument and not 2 arguments. In the Arrow documentation, [on this 
page|https://arrow.apache.org/docs/cpp/compute.html?highlight=round_temporal] 
{{round_temporal}} is listed as a _unary_ function (which means exactly the 
same thing - it accepts a single argument), but it also states that it is 
hooked up to the 
[{{RoundTemporalOptions}}|https://arrow.apache.org/docs/cpp/api/compute.html#_CPPv4N5arrow7compute20RoundTemporalOptionsE]
 options class. Looking at the {{call_function}} documentation tells me 
{{options}} can be passed as a list. Have a look at the {{?call_function}} 
documentation and get back to us or feel free to suggests improvements if you 
think they are needed.


was (Author: dragosmg):
In terms of syntax, I think what you are looking for might be:

{code:r}
call_function("round_temporal", arrow_now, options = list(unit = "day"))
{code}

> [R] How to round the timestamps in a mutate statement?
> ------------------------------------------------------
>
>                 Key: ARROW-16316
>                 URL: https://issues.apache.org/jira/browse/ARROW-16316
>             Project: Apache Arrow
>          Issue Type: Wish
>          Components: R
>    Affects Versions: 7.0.0
>            Reporter: Zsolt Kegyes-Brassai
>            Priority: Minor
>
> I was trying to aggregate over time using different granularity. Usually I 
> would use the {{lubridate::floor_date()}} , which is currently not supported 
> for parquet datasets.
> Is there any comprehensive list of supported list of currently supported 
> {{{}lubridate (or dplyr{}}}) verbs? Maybe, it’s only my fault, but except the 
> changelog I haven’t find any relevant information.
>  
> Later I found that the {{round_temporal()}} function is exposed to {{{}R{}}}. 
> But I am struggling to find the right syntax inside a mutate statement to 
> apply on a {{timestamp[us, tz=UTC]}} type column.
> {code:java}
> new_dataset |>
>   mutate(time = arrow_round_temporal(time))
> #>  Error: Invalid: Attempted to initialize KernelState from null 
> FunctionOptions
> {code}
>  
> Here are some other attempts:
> {code:java}
> library(arrow)
> arrow_now <- Scalar$create(lubridate::now())
> (arrow_now)
> #> Scalar
> #> 2022-04-25 11:44:33.805609
> call_function("round_temporal", arrow_now)
> #> Scalar
> #> 2022-04-25 00:00:00.000000
> call_function("round_temporal", arrow_now, unit = "day")
> #> Error: Argument 2 is of class character but it must be one of "Array", 
> "ChunkedArray", "RecordBatch", "Table", or "Scalar"
> arrow_unit <- Scalar$create("day")
> (arrow_unit)
> #> Scalar
> #> day
> call_function("round_temporal", arrow_now, unit = arrow_unit)
> #> Error: Invalid: Function 'round_temporal' accepts 1 arguments but 
> attempted to look up kernel(s) with 2
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to