mercredi 24 juillet 2019

For loop & if else working for less data but not working for more data

Calculation inside for loop & ifelse is working when I have 100-200 rows but not working when I have 20000 rows.

Can someone help me with the FOR loop and IFELSE if something is wrong or if there is some timeout happening in R studio when running for & if-else loop

Code:

#FROM HERE IT IS NOT WORKING WHEN WE HAVE 20000 ROWS OF DATA IN FINAL DATFRAME. 
#WE ARE CREATING FINAL_V1 WHICH IS POPULATING ONLY 1 ROW




#New Dataframe with Null values
Final_v1 <- NA
j <- 1
i <- 1


#SS computations
#For 1 to no of rows in df(which is having no of unique items 
for(j in 1:nrow(df)) {
  #copying the data from Final to Final_v1(with charater type)
  Final_v1 <- Final[Final$Item == as.character(df[j,1]),]
  #for 1 to the no of rows in Final_v1
  for(i in 1:nrow(Final_v1)) {

    if(Final_v1[i,6] <= 0)


      { 
        Final_v1[i,7] = Final_v1[i,4]}

      else
      { 
    if(Final_v1[i,5] == '1')
    {
      Final_v1[i,7]=0
      }

    else 
    {
      Final_v1[i,7]=Final_v1[i,4]
      }
    SSNew <- Final_v1[i,7]

    #Leftover distribution
    LCS <- lctolc$ToLC[Final_v1$Item[i] == lctolc$Item & Final_v1$LC[i] == lctolc$LC]
    inds <- Final_v1$LC %in% LCS    
    if (any(inds))
    {  Final_v1$SS[inds]<- if (SSNew == 0) {Final_v1$SS[inds]==0} else {Final_v1$SS[inds]=Final_v1$SS[inds]}    }
    }



  }

  names(Final_v1)[7] <- "SSNew"
}

Aucun commentaire:

Enregistrer un commentaire