【发布时间】:2013-10-31 21:33:27
【问题描述】:
我对 R 中复制函数的输出感到困惑,我试图以两种不同的方式使用它,(在我看来)应该给出一个矩阵作为输出!
所以,如果我使用
replicate(5, seq(1,5,1))
我得到一个 5x5 的矩阵
[,1] [,2] [,3] [,4] [,5]
[1,] 1 1 1 1 1
[2,] 2 2 2 2 2
[3,] 3 3 3 3 3
[4,] 4 4 4 4 4
[5,] 5 5 5 5 5
..没关系,我明白了...
但是,如果我改为使用:
replicate(5, for(i in 1:5){print(i)})
我得到以下信息:
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
NULL
谁能解释一下为什么会这样? 谢谢:)
【问题讨论】:
-
您的表达式返回值 NULL。作为副作用,它还会将值打印到控制台。但这些是不同的行动。