I don't get why the results from this for loop are not stored in the empty vector zz.
When looking at zz in the environment after running the for loop, I only see the value numeric (empty), I've read about it on Stackflow and tried the solutions but can't fix my problem.
Is there a solution for it?
a <- c(100,101,102,100)
return1 <- diff(a)/a[-length(a)]
zz <- c()
for (i in return1){
zz[i]<- 100*(i 1) 100
}
CodePudding user response:
EDIT:
If you want to store values in zz, the index i in zz[i] should be an integer of length 1:length(return1).
Because return1 contains non-rounded numbers, this condition is not satisfied. You can solve around this by introducing a proper index that equals 1 in the first iteration and increases 1 unit with each subsequent iteration.
Hence, the following should work:
a <- c(100,101,102,100)
return1 <- diff(a)/a[-length(a)]
zz <- c()
count <- 0
for (i in return1){
count <- count 1L
zz[count]<- 100*(i 1) 100
}
