迹忆客 专注技术分享

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

在 R 中添加元素到列表中

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

在 R 中,有很多方法可以使用循环将任意数量的元素添加到一个列表中,当元素数量较多时,其中一些方法可能会变得迟钝。本教程将介绍在 R 循环中向一个列表追加元素的最有效方法。

实现这种算法的常见方法是创建一个 while 循环,并在循环中使用 cconcatenate)命令。在每一次迭代中,通过使用 c 函数增加一个元素。在这个例子中,一个值(i*3)被添加到一个列表中,直到索引变量达到 10,000。

i <- 1
mylist <- c()

while (i<10) {
    mylist <- c(mylist, i*3)
    i <- i+1
}

cat(mylist)

输出:

3 6 9 12 15 18 21 24 27

前面例子的问题是,每次执行连接时,整个列表都会被复制。当处理大型数据集时,添加所有元素所需的时间可能是巨大的。

在 R 中使用 length 函数对一个列表进行追加

在循环中向列表中添加任意数量的元素的更有效的方法是在每次迭代中使用 length 函数。使用 length 函数,可以得到列表中的元素数,并将每个新元素分配到最后一个元素后面的索引:length(mylist) + 1

下面的例子和前面的例子一样,但效率更高。

i <- 1
mylist <- c()

while (i<10) {
    mylist[[(length(mylist) + 1)]] <- i*3
    i <- i+1
}

cat(mylist)

输出:

3 6 9 12 15 18 21 24 27

设置列表的上界

如果你事先知道你的循环会迭代多少次,那么你可以定义一个固定长度的向量,用来存放所有的元素,而不是增加元素列表长度。例如,如果你知道你的循环会迭代 10000 次,你可以这样初始化向量。

mylist <- vector("list", 10000)

之后,你可以使用 for 循环,根据每个元素的索引来设置它的值。

i <- 1
for (i in 1:10000) {
    mylist[[i]] <- i*3
}

如果你不知道迭代次数,但你有一个上限,你可以用这个上限定义向量。之后,当循环执行完毕,你可以只挑选非空元素。例如,如果你知道你的循环不会迭代超过 10,000 次,你可以用 10,000 个元素来初始化你的向量,即使你不会使用所有的元素。

转载请发邮件至 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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便