[ https://issues.apache.org/jira/browse/ARROW-18241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17628905#comment-17628905 ]
Neal Richardson commented on ARROW-18241: ----------------------------------------- > "I agree this would be a nice option to have." > sure. But should be the > default behavior, as that is what happens in base R, no? Sorry, that was ambiguous. We would need the C++ cast function to support an option to return nulls for values that can't be converted, rather than just error. If/when that option exists, then yes, we would make that default in R. I'll rename this ticket to be about that feature. > [R] as.integer can't handdle empty character cels (ex c('')) > ------------------------------------------------------------ > > Key: ARROW-18241 > URL: https://issues.apache.org/jira/browse/ARROW-18241 > Project: Apache Arrow > Issue Type: Bug > Components: R > Reporter: Lucas Mation > Priority: Major > > I am importing a dataset with arrow, and then converting variable types. But > I got an error message because the `arrow` implementation of `as.integer` > can't handle empty strings (which is legal in base R). Is this a bug? > {code:r} > #In R > '' %>% as.integer() > [1] NA > > #in arrow > q <- data.table(x=c('','1','2')) > q %>% write_dataset('q') > q2 <- 'q' %>% open_dataset %>% mutate(x=as.integer(x)) %>% collect > Error in `collect()`: > ! Invalid: Failed to parse string: '' as a scalar of type int32 > Run `rlang::last_error()` to see where the error occurred. > {code} > Update: tryed to preprocess x with `ifelse` but it also did not work. > {code:r} > 'q' %>% open_dataset %>% mutate(x= ifelse(x=='',NA,x)) %>% > mutate(x=as.integer(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. > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)