将for循环中的结果保存为r中的向量

时间:2014-10-12 22:56:52

标签: r for-loop vector

我有以下for循环打印1到10的数字:

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

如何将结果保存为矢量,而不是仅将其打印到控制台?

如果我尝试:

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

然后致电my_vector,我得到:

NULL 

3 个答案:

答案 0 :(得分:10)

调用print将始终将每次迭代的结果打印到控制台。如果您使用print命令,则可能会收到不需要的输出。

您的主要问题是您未在my_vector循环之前初始化for。您可以改为执行以下操作,但不会产生print副作用。

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

但请注意,这与使用sapply执行以下操作相同,但在这种情况下,您不需要声明,您可以将结果分配给矢量。

my_vector2 <- sapply(1:10, function(x) x)
my_vector2
# [1]  1  2  3  4  5  6  7  8  9 10

答案 1 :(得分:0)

也可以使用以下表格:

> my_vector = c()
> for(i in 1:5)       my_vector[length(my_vector)+1] = i
> my_vector
[1] 1 2 3 4 5

答案 2 :(得分:0)

可选地

my_vector = c()
for(i in 1:5){my_vector=c(my_vector,i)}
my_vector