Às 10:43 de 28/10/2022, Luigi Marongiu escreveu:
Hello,
I have a data frame with a string column. All data that are neither
"POS" nor "NEG" should've replaced by an NA. How can I implement that
(even with extra libraries)? My attempts actually wipe out POS and
NEG...
Thank you
```
df = data.frame(a = 1:5, b = c("", "31.35", "POS", "20.61", "NEG"),
stringsAsFactors = F)
df$b[!(df$b == "POS") & (df$b == "NEG")] = NA
df$b[(df$b == "POS") | (df$b == "NEG")] = NA
```
Hello,
Here is a way.
Use `%in%` to get the values equal to either "POS" or "NEG", negate its
result and function `is.na<-` assigns NA's.
df = data.frame(a = 1:5, b = c("", "31.35", "POS", "20.61", "NEG"),
stringsAsFactors = FALSE)
is.na(df$b) <- !df$b %in% c("POS", "NEG")
df
#> a b
#> 1 1 <NA>
#> 2 2 <NA>
#> 3 3 POS
#> 4 4 <NA>
#> 5 5 NEG
Hope this helps,
Rui Barradas
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.