迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

R 中的 replicate()函数

作者:迹忆客 最近更新:2023/03/21 浏览次数:

replicate() 函数可用于创建模拟,因为它可以重复一个表达式的特定次数。我们还可以使用 simplify 参数控制最终结果的类型为数组或列表。

下面是 replicate() 函数的一个简单例子。

replicate(5,1)
[1] 1 1 1 1 1

在上面的例子中,你可以看到,1 是重复 5 次的表达式。注意,这里的最终结果是一个数组。如果我们在函数中加入 simplify 参数(默认为 True),并将其设置为 False,我们将得到一个列表而不是一个数组。比如说,我们可以使用 “简化 “参数。

typeof(replicate(5,1,simplify = FALSE))
[1] "list"

我们也可以使用 replicate() 进行更复杂的模拟,比如创建一个二维数组。下面的代码片段将展示我们如何做。

replicate(5, seq(1,10,1))
      [,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
 [6,]    6    6    6    6    6
 [7,]    7    7    7    7    7
 [8,]    8    8    8    8    8
 [9,]    9    9    9    9    9
[10,]   10   10   10   10   10

在这个例子中,我们使用 seq() 函数来创建一个简单的序列。replicate() 重复 5 次序列,生成一个二维数组。

我们也可以使用 for() 循环来处理这种情况。例如:

n <- numeric(5)
arr2d <- replicate(5, {
   for(i in 1:5){n[i] <- print(i)};n} )
print(arr2d)
     [,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() 函数将得到 NULL 值,因为该值会被作为垃圾转储,而且不会被存储,因为我们使用的是 for() 循环。

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

输出:

[[1]]
NULL

[[2]]
NULL

[[3]]
NULL

[[4]]
NULL

[[5]]
NULL

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

R 中具有多个条件的函数向量化

发布时间:2023/03/21 浏览次数:64 分类:编程语言

一项常见的数据分析任务是根据同一行的其他列使用一个或多个条件创建或更新数据框列。 如果我们尝试使用 if 语句来执行此操作,则只会使用第一行来测试条件,并且会根据该行更

在 R 中读取 xlsx 文件

发布时间:2023/03/21 浏览次数:66 分类:编程语言

在这篇文章中,你将会了解到两个在 R 中读取 xlsx 文件的最完整和最容易使用的库:readxl 和 openxlsx。

清理 R 的环境

发布时间:2023/03/21 浏览次数:178 分类:编程语言

在本教程中,你将学习如何在 R 中编写一个函数,在不需要重新启动 R 的情况下清除环境。

在 R 中注释掉多行

发布时间:2023/03/21 浏览次数:63 分类:编程语言

在本文中,你将学习如何在 R 中注释出多行,而不必在每一行的开头手动写一个#字符来注释。

在 R 中清除内存

发布时间:2023/03/21 浏览次数:197 分类:编程语言

在本教程中,你将学习如何清除 R 系统占用的内存,而不必重新启动它或重新启动它运行的计算机。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便