R中的复制函数返回NULL

标签 r replicate

我对 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

谁能解释一下为什么会这样?
谢谢 :)

最佳答案

一个 for循环返回 NULL .所以在第二种情况下,replicate函数正在执行 for(i in 1:5){print(i)}五次,这就是为什么您会看到所有这些数字都打印出来的原因。

然后它把返回值放在一个列表中,所以返回值replicate调用是五个列表NULL s,它被打印出来。执行

x<-replicate(5, for(i in 1:5){print(i)})
x

应该澄清。

关于R中的复制函数返回NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19716984/

相关文章:

python - 是否有与 Perl 的 x 运算符(复制字符串)等效的 Python?

r - 在 rmarkdown 文本中打印 `ggplot2` 形状

转置数据帧后 R 变量类型发生变化

list - 获取元组列表的第一个元素

sql - 如何保持SQL数据和Elasticsearch同步以及从中进行搜索?

java - 如何复制数组?

按值对 geom_bar ggplot2 中的条形图重新排序

r - R 中具有两个单独值的词云

r - 按日期和时间选择时间序列对象的间隔

r - rep 真的是泛型吗?