[
https://issues.apache.org/jira/browse/ARROW-13799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17408971#comment-17408971
]
Neal Richardson commented on ARROW-13799:
-----------------------------------------
Yep that's ARROW-12632
> [R] case_when error handling is capturing strings
> -------------------------------------------------
>
> Key: ARROW-13799
> URL: https://issues.apache.org/jira/browse/ARROW-13799
> Project: Apache Arrow
> Issue Type: Bug
> Components: R
> Reporter: Neal Richardson
> Priority: Major
> Fix For: 6.0.0
>
>
> This test, now unskipped since case_when supports string data, fails:
> {code}
> expect_dplyr_equal(
> input %>%
> mutate(
> cw = case_when(!(!(!(lgl))) ~ factor(chr), TRUE ~ fct)
> ) %>%
> collect(),
> tbl
> )
> {code}
> On inspection, it seems that `factor(chr)` is hitting `base::factor()`, which
> tries to call `unique()` on the Expression and that fails with "unique()
> applies only to vectors". This is getting propagated through to the resulting
> dataset column because `arrow_eval()` returns a `try-error` on error and
> `nse_funcs$case_when()` isn't checking for errors.
> cc [~icook]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)