R 将打印输出捕获到向量中
我想把for循环的输出捕获到一个向量中,这样就可以绘制它了。一个简单的例子如下:R 将打印输出捕获到向量中,r,R,我想把for循环的输出捕获到一个向量中,这样就可以绘制它了。一个简单的例子如下: for(i in 3:5) { z <- i + 1 print(z) } [1] 4 [1] 5 [1] 6 for(3:5中的i){ z与使用循环和打印值相比,更好的习惯用法是使用sapply(或lappy): 如果由于某种原因,无法使用apply系列的成员,则可以修改循环,将函数的输出值指定给向量: z <- vector("numeric", 3) for(
for(i in 3:5) {
z <- i + 1
print(z)
}
[1] 4
[1] 5
[1] 6
for(3:5中的i){
z与使用循环和打印值相比,更好的习惯用法是使用sapply
(或lappy
):
如果由于某种原因,无法使用apply
系列的成员,则可以修改循环,将函数的输出值指定给向量:
z <- vector("numeric", 3)
for(i in 3:5) { z[i-2] <- i + 1 }
z
[1] 4 5 6
但是您会注意到,它捕获了打印的所有输出,包括矢量信息。您可以使用cat
来消除其中的一些信息:
z <- vector("numeric", 3)
for(i in 3:5) { z[i-2] <- capture.output(cat(i + 1)) }
z
[1] "4" "5" "6"
z也许你可以给我们一个更好的关于你想要实现的目标的概述。安德烈的建议很好,但在不知道你想要做什么的情况下,我们不妨直截了当。
z <- vector("numeric", 3)
for(i in 3:5) { z[i-2] <- capture.output(print(i + 1)) }
z
[1] "[1] 4" "[1] 5" "[1] 6"
z <- vector("numeric", 3)
for(i in 3:5) { z[i-2] <- capture.output(cat(i + 1)) }
z
[1] "4" "5" "6"