# Error in randomforest.default(m, y, ...) : na/nan/inf in foreign function call (arg 1)

110 views

## Problem :

I have done a lot of research on this extensively without finding any solution on it. I have tried cleaning my data set as follows:

`library("myraster")`
`impute.mean <- function(l) replace(l, is.na(l) | is.nan(l) | is.infinite(l) , `
`mean(l, na.rm = TRUE))`
`losses <- apply(losses, 2, impute.mean)`
`colSums(is.na(losses))`
`isinf <- function(l) (NA <- is.infinite(l))`
`infout <- apply(losses, 2, is.infinite)`
`colSums(infout)`
`isnan <- function(l) (NA <- is.nan(l))`
`nanout <- apply(losses, 2, is.nan)`
`colSums(nanout)`

But the problem arises while running the predict algorithm:

`options(warn=2)`
`p  <-   predict(default.rf, losses, type="prob", inf.rm = TRUE, na.rm=TRUE, nan.rm=TRUE)`

All my research says it should be NA's or Inf's or NaN's in the data but I don't have any

## Solution :

I guess you are failing to replace Inf values with the means of column vectors. This is happening because of the na.rm = TRUE argument in your call to mean() within the impute.mean function which does exactly what it says i.e. it removes NA values and clearly not Inf ones

You can cross check it, by following code example:

`impute.mean <- function(l) replace(l, is.na(l) | is.nan(l) | is.infinite(l), mean(l, na.rm = TRUE))`
`losses <- apply(losses, 2, impute.mean)`
`sum( apply( losses, 2, function(.) sum(is.infinite(.))) )`
`#  696`

To remove the infinite values, please use following:

`impute.mean <- function(l) replace(l, is.na(l) | is.nan(l) | is.infinite(l), mean(l[!is.na(l) & !is.nan(l) & !is.infinite(l)]))`
`losses <- apply(losses, 2, impute.mean)`
`sum(apply( losses, 2, function(.) sum(is.infinite(.)) ))`
`#  0`

## Related questions

1 vote
361 views
Problem : Currently I am learning r. I have the data table "normal" which has the numeric as far as I know normalized values. If I try to execute the below command k <- kmeans(normal,center=3) Then I always face the below error: &ldquo;Error in do_one(nmeth) : NA/NaN/ ... call (arg 1)&rdquo; I am trying to fix it by researching on it but still unable to fix it. Can somebody help me in fixing it?
1 vote
1.3K views
Problem : I want to perform a logistic regression but I am facing following error I am unable to find my mistake. summary(glm(prefmerkel~angst+crisismerkel+leadership+trustworthiness+ideology+pid+agegroups+gender+region,data=gles)) Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, ... In Ops.factor(eta, offset) : -' nicht sinnvoll für Faktoren 3: In Ops.factor(y, mu) : -' nicht sinnvoll für Faktoren