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

Neal Richardson commented on ARROW-18244:
-----------------------------------------

I commented about ifelse on ARROW-18241 with a workaround for the current 
version and a suggestion that it should work as you expect in the development 
version. If you can install a nightly version of the package and confirm, that 
would be great. 

{{str_replace}} does work if the replacement is a string, but {{NA}} is 
logical, and this fails in regular stringr too:

{code}
> data.frame(x="a") %>% mutate(y = str_replace(x, "a", NA))
Error in `mutate()`:
! Problem while computing `y = str_replace(x, "a", NA)`.
Caused by error:
! `replacement` must be a character vector
Run `rlang::last_error()` to see where the error occurred.
{code}

Use {{NA_character_}} to specify a string.

> [R] `mutate(x2=ifelse(x=='',NA,x))` Error: Function 'if_else' has no kernel 
> matching input types 
> -------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-18244
>                 URL: https://issues.apache.org/jira/browse/ARROW-18244
>             Project: Apache Arrow
>          Issue Type: Bug
>            Reporter: Lucas Mation
>            Priority: Major
>
>  
> ```
> q <- data.table(x=c('','30111976','01011976'))
> q %>% write_dataset('q')
> q2 <- 'q' %>% open_dataset %>% mutate(x2=ifelse(x=='',NA,x)) %>% collect
> Error in `collect()`:
> ! NotImplemented: Function 'if_else' has no kernel matching input types 
> (bool, bool, string)
> Run `rlang::last_error()` to see where the error occurred.
> ```
> In [Functions available in Arrow dplyr 
> queries|https://arrow.apache.org/docs/r/reference/acero.html] it is stated 
> that ifelse() is available, but the error above suggests otherwise.
> Update, "str_replace" is another function that is supposedly available in 
> 10.0.0 but is not (or does not seem to be):
> ```
> q2 <- 'q' %>% open_dataset %>% mutate(x2=x %>% str_replace('',NA)) %>% collect
> Error: Expression x %>% str_replace("", NA) not supported in Arrow
> Call collect() first to pull data into R.
> ```
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to