我想创建一个带有循环结果的数字向量,例如
> for (i in 1:5) print(i+1)
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
Run Code Online (Sandbox Code Playgroud)
没有'print'的相同表达式什么都不返回,这似乎很奇怪
> for (i in 1:5) i+1
>
Run Code Online (Sandbox Code Playgroud)
有没有人有解释/解决方案?
这是标准行为 - 当您说要创建数字向量时,
print不会这样做
for循环中的表达式是原始函数的参数 for
来自?`for`价值部分
for,while和repeat无形地返回NULL.for sets var to seq的最后一个使用元素,如果长度为零则为NULL.
print 将结果打印到控制台.
for(i in 1:5) i + 1
Run Code Online (Sandbox Code Playgroud)
仅计算i + 1每次迭代并且不返回任何内容
如果你想分配一些东西,然后使用<-,或不太合适assign
您可以使用避免显式循环sapply.这(应该)避免任何增长载体的陷阱
results <- sapply(1:5, function(i) { i + 1})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7684 次 |
| 最近记录: |