How to globally convert NaN to NA in dataframe?
You removed the second line 'xx' from the function, put it back and it should work
On Thu, Sep 2, 2021, 09:45 Luigi Marongiu <marongiu.luigi at gmail.com> wrote:
`data[sapply(data, is.nan)] <- NA` is a nice compact command, but I
still get NaN when using the summary function, for instance one of the
columns give:
```
Min. : NA
1st Qu.: NA
Median : NA
Mean :NaN
3rd Qu.: NA
Max. : NA
NA's :110
```
I tried to implement the second solution but:
```
df <- lapply(x, function(xx) {
xx[is.nan(xx)] <- NA
})
str(df)
List of 1 $ sd_ef_rash_loc___palm: logi NA ``` What am I getting wrong? Thanks On Thu, Sep 2, 2021 at 3:30 PM Andrew Simmons <akwsimmo at gmail.com> wrote:
Hello, I would use something like: x <- c(1:5, NaN) |> sample(100, replace = TRUE) |> matrix(10, 10) |>
as.data.frame()
x[] <- lapply(x, function(xx) {
xx[is.nan(xx)] <- NA_real_
xx
})
This prevents attributes from being changed in 'x', but accomplishes the
same thing as you have above, I hope this helps!
On Thu, Sep 2, 2021 at 9:19 AM Luigi Marongiu <marongiu.luigi at gmail.com>
wrote:
Hello, I have some NaN values in some elements of a dataframe that I would like to convert to NA. The command `df1$col[is.nan(df1$col)]<-NA` allows to work column-wise. Is there an alternative for the global modification at once of all instances? I have seen from
that once could use: ``` is.nan.data.frame <- function(x) do.call(cbind, lapply(x, is.nan)) data123[is.nan(data123)] <- 0 ``` replacing o with NA, but I got ``` str(df)
logi NA
``` when modifying my dataframe df. What would be the correct syntax? Thank you -- Best regards, Luigi
______________________________________________ R-help at 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. -- Best regards, Luigi