我有以下for循环打印1到10的数字:
for (i in 1:10) {print (i) }
如何将结果保存为矢量,而不是仅将其打印到控制台?
如果我尝试:
my_vector <- for (i in 1:10) {print (i) }
然后致电my_vector
,我得到:
NULL
答案 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