在R中,当我使用“ print”时,我可以看到所有值,但是如何将其保存为矢量呢?例如,在“ for”循环中:
for(i in 1:10),当i = 1,2,3,4 .....时,我想要A的值,但是如果使用x=A,它仅保存A的最终值,即i = 10时的值。那么,如何将值保存在print(A)中?另外,我使用了多个“ for”循环,例如:
for (i in 1:9) {
for (k in 1:4) {
}
}
Run Code Online (Sandbox Code Playgroud)
因此,x [i] = A ..在这里不能很好地工作。
我认为Etiennebr的答案向您展示了您应该做什么,但是这是如何捕获print您想要的输出:使用该capture.output函数。
> a <- capture.output({for(i in 1:5) print(i)})
> a
[1] "[1] 1" "[1] 2" "[1] 3" "[1] 4" "[1] 5"
Run Code Online (Sandbox Code Playgroud)
您会看到它完全捕获了打印的所有内容。为了避免所有[1]s,可以使用cat代替print:
a <- capture.output({for(i in 1:5) cat(i,"\n")})
> a
[1] "1 " "2 " "3 " "4 " "5 "
Run Code Online (Sandbox Code Playgroud)
再一次,您可能真的不想为您的应用程序执行此操作,但是在某些情况下,此方法很有用(例如,隐藏某些功能所要求的自动打印的文本)。
编辑:由于print或的输出cat是一个字符串,如果您捕获它,它仍将是一个字符串并且将带有引号。要删除引号,只需使用as.numeric:
> as.numeric(a)
[1] 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3941 次 |
| 最近记录: |