为什么这段代码:
sapply(c(1, 3, 4, 0), print)
回报:
[1] 1
[1] 3
[1] 4
[1] 0
[1] 1 3 4 0
为什么它也返回输入?
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
这是因为print
打印它的参数(因此得名),但它也返回它们。
> x <- print( 1 )
[1] 1
> x
[1] 1
我们看不到[1] 1
通常是因为print
不可见地返回它的参数。