我有一个相当简单的问题.
我有以下代码:
for (i in 1:10) {print (i) }
Run Code Online (Sandbox Code Playgroud)
如何将结果保存为矢量?
如果我试试
my_vector <- for (i in 1:10) {print (i) }
Run Code Online (Sandbox Code Playgroud)
然后调用my_vector,我得到Null.
Ric*_*ven 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
Run Code Online (Sandbox Code Playgroud)
但请注意,这与执行以下操作相同sapply,但在这种情况下,您不需要声明,您可以将结果分配给矢量.
my_vector2 <- sapply(1:10, function(x) x)
my_vector2
# [1] 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31074 次 |
| 最近记录: |