R 将打印输出捕获到向量中

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循环的输出捕获到一个向量中,这样就可以绘制它了。一个简单的例子如下:

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"