x=c(x,i)
is collecting the data because of the function c
which concatenates each new value i
to the previously existing vector x
.
If you want to get more insights as to what’s going on inside the loop, you can use print(x)
, which will display the value of x
at each iteration of the loop.
x<-c()
for(i in 1:5){
x=c(x,i)
print(x)
}
# [1] 1
# [1] 1 2
# [1] 1 2 3
# [1] 1 2 3 4
# [1] 1 2 3 4 5
At each iteration, x
is being updated with a new value i
. Without c
, the previous values of x
would be deleted from the vector x
, as shown below.
x<-c()
for(i in 1:5){
x=i
print(x)
}
# [1] 1
# [1] 2
# [1] 3
# [1] 4
# [1] 5
As @user2554330 pointed out in the comments, it is easier to think about it when using <-
instead of =
, as c(x,i)
is being stored into a new vector x
. x
is thus being overwritten at each iteration, which is why you get a different result with x = i
.
CLICK HERE to find out more related problems solutions.