Replace with NA

Hi,

I've got stuck by trying to replace all values in my df containg "," by NAs. Could you please help me, preferably in dplyr?

Many thanks,

Jakub

Have you tried a combination of dplyr's mutate( ) + across ( ) + case_when( ) functions?

Here is one solution that acts only on character columns.

library(dplyr)
library(stringr)
DF <- data.frame(A = c("A", "B,C", "C"),
                 B = c("1", "2", "3,4"),
                 C = rnorm(3))
DF
#>     A   B          C
#> 1   A   1  0.5281151
#> 2 B,C   2  0.8441517
#> 3   C 3,4 -1.7556551
DF <- DF |> mutate(across(where(is.character), 
                          ~ifelse(str_detect(.x, ","), NA, .x)))
DF
#>      A    B          C
#> 1    A    1  0.5281151
#> 2 <NA>    2  0.8441517
#> 3    C <NA> -1.7556551

Created on 2022-07-08 by the reprex package (v2.0.1)