0

为什么这段代码:

sapply(c(1, 3, 4, 0), print)

回报:

[1] 1
[1] 3
[1] 4
[1] 0
[1] 1 3 4 0

为什么它也返回输入?

4

2 回答 2

6

sapply()正在返回您的打印值的向量,但首先在调用它们时打印每个向量。如果你看一下这个例子,这可能会更清楚:

> x <- sapply(1:4,print)
[1] 1
[1] 2
[1] 3
[1] 4
> x
[1] 1 2 3 4
> y <- sapply(1:4,function(x) x)
> y
[1] 1 2 3 4
> identical(x,y)
[1] TRUE
于 2013-10-20T17:45:27.753 回答
2

这是因为print打印它的参数(因此得名),但它也返回它们。

> x <- print( 1 )
[1] 1
> x
[1] 1

我们看不到[1] 1通常是因为print不可见地返回它的参数。

于 2013-10-20T19:23:21.727 回答