Home > Mobile >  Why is loop adding NA values to the data frame?
Why is loop adding NA values to the data frame?

Time:01-15

I have a basic while and for loop, I iterate through some starting and ending values in a dataframe, then go through a list and grab (substring) some values.

The problem with the below code is that it adds a lot of NA rows which I don't understand why and how.

I have an if which looks at the GREPL- finds "TRACK 2 DATA: ", if so then ads a row in dataframe. I don't have an else which adds NA values. So in my understanding in case if Block is false, the iteration should continue and not add values to dataframe?

What might be wrong?

i=1
fundi <- nrow(find_txn)  #get the last record
while(i <=fundi) {                  # Start while-loop until END OF records
  nga <- find_txn[i,1]  #FRom record
  ne <- find_txn[i,3]  #to Records 
  
  for (j in nga:ne){ #For J in from:to 
    
    if(grepl("TRACK 2 DATA: ",linn[j])) { #If track data found  do something 
      
      gather_txn[j,1] <- j # add a record for iteration number 
      gather_txn[j,2] <- substr(linn[j],1,9) #get some substrings 
      gather_txn[j,3] <- substr(linn[j],34,39) #get some substrings 
      
    }  
  }
  i <- i   1
 }

CodePudding user response:

I was looping through the wrong variable. the inside if loop needs to add to the table using i not j variable:

gather_txn[i,1] <- j # add a record for iteration number 
gather_txn[i,2] <- substr(linn[j],1,9) #get some substrings 
gather_txn[i,3] <- substr(linn[j],34,39) #get some substrings 
  •  Tags:  
  • Related