Neal Richardson created ARROW-13799:
---------------------------------------

             Summary: [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
             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)

Reply via email to