Resolved: Creating an empty vector with variable length
Hello,
In the previous lecture, we explicitly defined the length of an empty vector "new.title <- vector(length=5)"
, so it can store 5 elements from the For loop.
Is it possible to create an empty vector that can store a variable number of elements?
For instance, I apply the Collatz conjecture for this while loop:
x <- 10
x
while (x != 1) {
if ((x %% 2) == 0) {
x <- x / 2
} else {
x <- x * 3 + 1
}
print(x)
}
Since we can set any positive integer for x, we would also have different number of results from the Collatz conjecture before it reaches 1.
So, instead of "printing" the new value of vector x on each cycle, I want to store them in a vector first, then just print the vector once the loop breaks.
Kind regards,
Carl
Hi Carl,
yes, you can create a vector, or character array which you can gradually fill in the for loop. To do so, you can define the array like so:
my_vec <- character() # Create empty character vector
my_vec
Then you can fill it up with the value of x in the for loop like so:
while (x != 1) {
if ((x %% 2) == 0) {
x <- x / 2
my_vec <- c(my_vec, x)
} else {
x <- x * 3 + 1
my_vec <- c(my_vec, x) } }
Let me know if the solution works for you.
Best,
365 Eli