想提高文章的引用率?写个R包吧!---- 05环境

      最后更新:2020-06-20 10:28:22 手机定位技术交流文章

      环境在R语言中是一个较低级的概念。了解环境可以帮助你进一步了解R的工作原理,这对使用R and R编程非常有帮助。

      1.内容、对象和环境

      在计算机中,保存所有文件的位置是文件夹。例如,我写了一些“文本”并保存在word文档中:“环境”。文档保存在文件夹“课堂讲稿”下。注意这里的逻辑关系:“文本内容”存储在“环境”中。docx ”,而“word”文本(可以是多个)存储在“讲义”文件夹中。因此,这里的逻辑关系是:

      文本内容->文字文本(一个或多个)->文件夹

      r中的数据存储关系也是如此。例如,我们将1分配给a

      这里,1是我们的“内容”。是承载内容的载体。一个可以携带1、2甚至其他数据内容。a是我们所说的物体。数据对象是承载数据的载体,相当于文字。数字1总是数字1,A可以携带1或其他,所以1也称为常数,A称为变量。存储数据对象的地方称为环境,相当于“文件夹”。

      因此,在R中存储数据的逻辑是:

      内容->对象(一个或多个,相当于文字)->环境(相当于文件夹)

      数据内容和对象(或变量),即1和a,是可见的。然而,我们在R软件中看不到环境。在Rstudio软件中,我们可以看到一个环境窗口。平时,当我们寻找数据时,我们也在这个窗口下寻找,因为R中的数据对象存储在环境中。

      2.本地环境和全球环境

      2.1查看当前活动环境

      正如我们可以有许多文件夹一样,r也可以有许多环境,使用environment()命令查看当前环境

      我们可以看到当前活跃的环境是全球环境。因为上面说过对象存储在环境中,所以我们可以从某个环境中提取所有对象。

      如果您将环境()命令的结果赋给g,您可以看到一个数据g,g的类型是环境,我们可以使用美元符号($)来提取g中的对象

      2.2创建新环境并在其中写入数据

      我们可以使用new.env()命令创建一个新环境,类似于创建一个新文件夹。同样,美元符号($)用于将数据写入环境。

      使用new.env()命令创建新环境e后,环境e的编码是0x000001ed51d25cb0。这种环境编码我们不需要理解,它代表了硬盘上的一个位置。E$v=9意味着在e环境中将数字9写入v对象。

      您还可以使用assign()命令为环境赋值。它命令被分配(对象、内容、环境)。我们将对象k保存到环境e中,k的内容是123,并使用View()命令来查看环境e

      可以看出,在电子环境中有两个数据K和V

      (公共号码旋开服务号码免费现场医学研究,后台回复“现场”免费访问资源)

      3.局部变量和全局变量

      环境是R管理和存储各种数据的地方。每个函数在创建之初都会创建自己的环境。

      我们创建一个函数e1()来显示它的内部环境。

      e1的内部环境代码是0x000001ed50c7f200。我们将再次运行相同的命令。

      可以看出,即使功能完全相同,每次运行时也会创建不同的环境,因为它们在计算机磁盘上没有固定的位置,所以每次运行都会在不同的磁盘位置。

      注意:在前面的步骤中,我们创建了环境e,它包含两个数据,k和v,它的环境代码是0x000001ed51d25cb0,与这里的代码完全不同。这是因为上述环境e是在全局环境中创建的,而函数e1()中的e是在函数的内部环境中创建的。虽然这两个对象都被称为e,但是它们存储在不同的环境和磁盘上的不同位置。

      现在,我们创建函数e2(),它直接打印E

      我们可以看到在函数e2中没有e,但是e可以被打印出来。此外,e的内容是上一步中创建的环境代码0x000001ed51d25cb0。可以看出,此时的e是由函数e2直接引用的全局环境中的e。这是R环境的另一个特点:单向:全局环境(父环境)中的数据可以传输到其本地环境(子环境),而本地环境中的数据不能传输到全局环境。如果要将局部环境中的变量转移到全局环境中,需要使用全局赋值符号< & lt-.

      我们创建一个函数e3,并在函数内部的本地环境中将78赋给H,在全局环境中将79赋给Y。

      当我们使用全局分配符号< & lt-将79分配给Y后,我们在全球环境中看到了这一点。

      4.全局变量的含义

      全局变量没有被广泛使用,主要是因为CRAN禁止函数修改全局变量以避免不必要的混淆。

      然而,全局变量的使用实际上非常广泛。在捕捉bug时,使用全局变量可以方便我们检查函数的漏洞。在生成shinyApp时,虽然全局变量不能激活响应表达式,但它们也可以传递值,这给生成shinyApp带来了极大的方便。

      摘要

      环境是一个模糊的概念,但是要知道局部环境和全局环境,它们是单向关系,你可以用全局赋值符号把局部环境的变化转移到全局环境。

      10天理解三点脊髓损伤常规

      点击下面

      拧下维修编号

      自由参与

      —结束—

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/8114.html

          热门文章

          文章分类