我有以下 for 循环,它打印从 1 到 10 的数字:
for (i in 1:10) {print (i) }
如何将结果保存为矢量,而不仅仅是将它们打印到控制台?
如果我尝试:
my_vector <- for (i in 1:10) {print (i) }
然后调用
my_vector
,我得到:NULL
最佳答案
调用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
关于r - 将 for 循环的结果保存为 r 中的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26330849/