Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Saving results from for loop as a vector in r

Tags:

for-loop

r

vector

I have the following for loop which prints numbers from 1 to 10:

for (i in 1:10) {print (i) } 

How do I save the results as a vector, instead of just printing them to the console?

If I try:

my_vector <- for (i in 1:10) {print (i) } 

Then call my_vector, I get:

NULL 
like image 711
Zslice Avatar asked Oct 12 '14 22:10

Zslice


Video Answer


2 Answers

Calling print will always print the result of each iteration to the console. If you leave in the print command, then you might get unwanted output.

Your main problem is that you did not initialize my_vector before the for loop. You could instead do the following and not get the print side-effect.

my_vector <- vector("numeric", 10L)
for(i in 1:10) my_vector[i] <- i
my_vector
# [1]  1  2  3  4  5  6  7  8  9 10

But note that this is just the same as doing the following with sapply, but in this case you need no declaration and you can assign the result to a vector.

my_vector2 <- sapply(1:10, function(x) x)
my_vector2
# [1]  1  2  3  4  5  6  7  8  9 10
like image 104
Rich Scriven Avatar answered Sep 27 '22 18:09

Rich Scriven


Alternatively

my_vector = c()
for(i in 1:5){my_vector=c(my_vector,i)}
my_vector
like image 36
Anastasiya-Romanova 秀 Avatar answered Sep 27 '22 19:09

Anastasiya-Romanova 秀