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

标签 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 

最佳答案

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

您的主要问题是您没有初始化 my_vectorfor 之前环形。您可以改为执行以下操作而不会得到 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/

相关文章:

r - 将时间戳切成 R 中的数字槽

vector - 如何保持盒子的同一侧垂直于 povray 中的相机位置?

r - 在列超链接中创建所有行条目(R 中的 Excel 文件生成)

r - 具有外生变量的 VAR

r - `Rprof`的内存分析输出的解释

c++ - 如何查明某个字符串是否包含在 std::vector 的任何字符串中?

c++ - vector 即使在推回的时候也在调用析构函数......为什么

javascript - 循环 javascript 函数

c# - for 循环中的每次迭代都会覆盖整个数组的值

r - 在 R 中寻找适用于嵌套 for 循环情况的 apply、tidyr 或 dplyr 解决方案