0

I am trying to use a for loop to iterate through every row in a dataframe and I am using an if else loop to change values in my dataframe if other values in the row meet certain criteria.
When I run the code I get the error message of

Error in if ((RouteType == 7 | RouteType == 9) & (SGR > 5) & (0 < SGR30) & : missing value where TRUE/FALSE needed

I have the correct inputs for my data.

Here is my code:

library(MASS)
library(plyr)
library(dplyr)
library(tidyverse)

k=#The MAin Loop will be on all the sample FHWA data
  for (k in 1:NROW(DataWSGR)){

  RouteType    <-  DataWSGR[k,4]
  FactoredAADT <-  DataWSGR[k,11]
  SGR          <-  DataWSGR[k,17]  
  SGR10        <-  DataWSGR[k,18]
  SGR20        <-  DataWSGR[k,19]
  SGR30        <-  DataWSGR[k,20]
  Count10      <-  DataWSGR[k,21]
  Count20      <-  DataWSGR[k,22]
  Count30      <-  DataWSGR[k,23]
  Recommended  <-  DataWSGR[k,24]

    # 30 year 0 < SGR <= 5
if((RouteType == 7 | RouteType == 9) & (SGR > 5 ) & (0 < SGR30) & (SGR30 <= 5 )) 
  {DataWSGR[k,24] <- ((SGR30*3/10*Count30) + Count30)} else

    # 20 year 0 < SGR <= 5    
if((RouteType == 7 | RouteType == 9) & (SGR > 5 ) & (0 < SGR20) & (SGR20 <= 5 ))
  {DataWSGR[k,24] <- ((SGR20*2/10*Count20) + Count20)} else

    # 10 Year 0 < SGR < 5    
if((RouteType == 7 | RouteType == 9) & (SGR > 5 ) & (0 < SGR10) & (SGR10 <= 5 ))
  {DataWSGR[k,24] <- ((SGR10*1/10*Count10) + Count10)} else

    # 10, 20, and 30 year SGR > 5    
if((RouteType == 7 | RouteType == 9) & (SGR > 5 ) & 
   (SGR30 > 5 | !is.na(SGR30)) & (SGR20 > 5 | !is.na(SGR20)) & (SGR10 > 5 | !is.na(SGR10)) )
{DataWSGR[k,24] <- ((2/10*FactoredAADT*5) + FactoredAADT)} else

  # 10, 20, and 30 year SGR < 0  
if((RouteType == 7 | RouteType == 9) & (SGR > 5 ) & 
   (SGR30 < 0 | !is.na(SGR30)) & (SGR20 < 0 | !is.na(SGR20)) & (SGR10 < 0 | !is.na(SGR10)) )
{DataWSGR[k,24] <- ((2/10*FactoredAADT*1) + FactoredAADT)} else
{next}
}```

  • Very likely that you have some `NA` value in your dataset. – nicola Feb 26 '20 at 15:11
  • Hi Andy Davis. Could you add a [minimale reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610)? – dario Feb 26 '20 at 15:12

0 Answers0