I am try to trying to understand how loops in operate. I have a simple dataframe xx which is as follows
COMPANY_NUMBER | NUMBER_OF_YEARS |
---|---|
#0070837 | 3 |
#0070837 | 3 |
#0070837 | 3 |
1000403 | 4 |
1000403 | 4 |
1000403 | 4 |
1000403 | 4 |
10029943 | 3 |
10029943 | 3 |
10029943 | 3 |
10037980 | 4 |
10037980 | 4 |
10037980 | 4 |
10037980 | 4 |
10057418 | 3 |
10057418 | 3 |
10057418 | 3 |
1009550 | 4 |
1009550 | 4 |
1009550 | 4 |
1009550 | 4 |
The code I have written is
while (i <= nrow(xx1) )
{
for (j in 1:xx1$NUMBER_OF_YEARS[i])
{
xx1$I[i] <- i
xx1$J[j] <- j
xx1$NUMBER_OF_YEARS_j[j] <- xx1$NUMBER_OF_YEARS[j]
}
i=i + (xx1$NUMBER_OF_YEARS[i] )
}
After running the code I want my dataframe to look like
|COMPANY_NUMBER |NUMBER_OF_YEARS| | I| |J|
|#0070837 |3| |1| |1|
|#0070837 |3| |1| |2|
|#0070837 |3| |3| |3|
|1000403 |4| |1| |1|
|1000403 |4| |1| |2|
|1000403 |4| |1| |3|
|1000403 |4| |4| |4|
|10029943 |3| |1| |1|
|10029943 |3| |1| |2|
|10029943 |3| |3| |3|
|10037980 |4| |1| |1|
|10037980 |4| |1| |2|
|10037980 |4| |1| |3|
|10037980 |4| |4| |4|
|10057418 |3| |1| |1|
|10057418 |3| |1| |1|
|10057418 |3| |1| |1|
|1009550 |4| |1| |1|
|1009550 |4| |1| |2|
|1009550 |4| |1| |3|
|1009550 |4| |4| |4|
I get the correct value of I but in the wrong row but the vaule of J is correct in the first iteration and then it goes to 1
Any help will be greatly appreciated