R语言 | 编写自己的函数

这篇具有很好参考价值的文章主要介绍了R语言 | 编写自己的函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、正式编写程序

二、设计第一个函数

 三、函数也是一个对象

四、程序代码的简化

五、return()函数的功能

六、省略函数的大括号

 七、传递多个参数函数的应用

7.1 设计可传递2个参数的函数

7.2 函数参数的默认值

7.3 3点参数“…”的使用

 八、函数也可以作为参数

8.1 正式实例应用

8.2 以函数的程序代码作为参数传递

九、局部变量和全局变量

 十、通用函数

十一、设计第一个通用函数

11.1 优化转换百分比函数

11.2 设计通用函数的默认函数


一、正式编写程序

在前面的内容中,我们使用了R语言的直译器,在RStudio窗口左下方的Console窗口的代码区输入代码,立即可在此窗口获得执行结果。从现在起,我们将在RStudio窗口左上方的Source窗口编辑所有程序代码,然后存储,最后再编译和执行。

二、设计第一个函数

R语言 | 编写自己的函数

单击在RStudio窗口左上角Source窗口的“Source”按钮,结果如下:

R语言 | 编写自己的函数

 上述程序最大的不便之在于,如果我们有其他一系列数据要处理,则要修改程序第1行的数值向量。下面的函数格式可以改良此缺点:

函数名称<-function(参数1,参数2,...)
{
    程序代码
    程序代码
    ...
}

 R语言 | 编写自己的函数

 R语言 | 编写自己的函数

在上述执行结果中,执行source()函数后,所设计的函数ch11_2()已被加载,所以以后我们可以自由使用这个函数。

 三、函数也是一个对象

其实函数也是一个对象,例如,在Console窗口直接输入对象名称,可以看到此对象的内容。

R语言 | 编写自己的函数

特别需要注意的是,不可加“()”,若加上“()”,则表示引用此函数,此时必须有参数在“()”,即括号内,否则会有错误产生。

我们也可以设定一个新的对象等于这个函数对象。

R语言 | 编写自己的函数

R语言的这个功能虽然好用,但风险是,若是不小心使用一个与这个函数相同的变量名称,此时,这个函数就会被系统删除。所以为对象取名字时要小心,尽量避免出现相同的名字。

四、程序代码的简化

R语言 | 编写自己的函数

R语言 | 编写自己的函数

 R语言 | 编写自己的函数

R语言 | 编写自己的函数

五、return()函数的功能

R语言 | 编写自己的函数

R语言 | 编写自己的函数

六、省略函数的大括号

如果函数体只有1行,那么也可以省略大括号。

 R语言 | 编写自己的函数

R语言 | 编写自己的函数

R语言 | 编写自己的函数

 R语言 | 编写自己的函数

 七、传递多个参数函数的应用

如果想要传递多个参数,那么只要将新的参数放在function()的括号内,各参数间彼此用逗号隔开即可。

7.1 设计可传递2个参数的函数

R语言 | 编写自己的函数

R语言 | 编写自己的函数

7.2 函数参数的默认值

R语言 | 编写自己的函数

 R语言 | 编写自己的函数

7.3 3点参数“…”的使用

实际上在设计函数时会碰上需传递更多参数的情况,如果参数一多,会使设计function()的参数列表变得很长,以后调用时的参数列表也会很长,碰上这种情况,R语言提供的3点参数“…”的概念,这种3点参数通常会放在参数列表的最后面

R语言 | 编写自己的函数

 R语言 | 编写自己的函数

 八、函数也可以作为参数

8.1 正式实例应用

R语言 | 编写自己的函数

R语言 | 编写自己的函数

 若省略第2个参数,则预设是执行round()函数。

如果调用函数时第2个参数为函数,则此参数函数将取代第3行的Xfun()。

8.2 以函数的程序代码作为参数传递

R语言既可支持将函数作为参数传递,也可支持将函数的程序代码当作参数传递,这类传递程序代码而不传递函数名的方式,被称为匿名函数。

R语言 | 编写自己的函数

R语言 | 编写自己的函数 

 上述代码中,以下函数的程序代码已被当作参数传递了。

function(x) round(x*100/sum(x))

九、局部变量和全局变量

对于一个函数而言,这个函数内部所使用的变量称为局部变量,程序整体所使用的变量会在Workspace窗口内看到,称为局部变量。对于函数所属的局部变量而言,函数调用结束变量就消失了。对于全局变量而言,只要Workspace窗口内保存,就随时可调用。

R语言 | 编写自己的函数

 R语言 | 编写自己的函数

 十、通用函数

何为通用函数?如果一个函数接收到参数后,什么事都不做,只是将工作分配给其他函数执行,这类函数被称为通用函数。

对于R语言,其实最常用的通用函数是print(),下列是print()函数的程序代码。

R语言 | 编写自己的函数

R语言 | 编写自己的函数

许多通用函数在设计时,大都会同时设计一个默认函数,如果没有特定的函数可使用,则调用默认函数,比如print.default()。

R语言 | 编写自己的函数

十一、设计第一个通用函数

11.1 优化转换百分比函数

R语言 | 编写自己的函数

R语言 | 编写自己的函数 

11.2 设计通用函数的默认函数

R语言 | 编写自己的函数

R语言 | 编写自己的函数  文章来源地址https://www.toymoban.com/news/detail-436637.html

到了这里,关于R语言 | 编写自己的函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自己编写小程序背日语50音图

    简而言之呢就是最近心血来潮打算自学日语,学日语自然就要先从50音图开始,就是下面这个: 可以看出来50音图横向是按照a i u e o这5个元音顺序,纵向按照a ka sa ta na ha ma ya ra wa 的顺序排布的。按顺序编排自然是为了方便记忆,但是也容易按照顺序能背出来,打乱顺序是否

    2024年02月06日
    浏览(28)
  • 自己动手编写 Windows 防止锁屏脚本程序

    有些公司出于安全和保密工作考虑,会通过 Windows 组策略强制所有办公电脑在无操作的情况下 5 分钟或者 10 分钟自动锁屏,避免无关人士看到不该看的内容。作为程序员,十分反感这种一刀切的方案,一来很容易打断思路,比如正在写代码或者向别人展示时,突然锁屏了就挺

    2024年02月11日
    浏览(72)
  • 嵌入式Qt-动手编写并运行自己的第1个ARM-Qt程序

    介绍了如何搭建在Linux开发板中搭建Qt的运行环境,并测试了Qt自带的例程。 本篇,来介绍如何自己编写一个Qt程序,并将编译结果放到Linux开发板中运行。 因为Qt是支持跨平台的,所以我们可以先在Windows平台上编写和查看Qt的运行效果,然后再通过交叉编译,编译出ARM Linux平

    2024年02月02日
    浏览(30)
  • 【C语言】回调函数,qsort排序函数的使用和自己实现,超详解

    先记录一下访问量突破2000啦,谢谢大家支持!!! 这里是上期指针进阶链接,方便大家查看:添加链接描述 大家好呀,今天分享一下上期指针进阶中剩余的内容——回调函数,这个很重要滴,让我们一起来学会学懂他吧!!! 标准概念: 回调函数就是一个通过函数指针调

    2024年02月12日
    浏览(40)
  • C语言:编写函数进行一维数组输入输出和求平均值

    任务描述 本关任务:从键盘输入某班学生 C 语言课的成绩(已知该班人数为 40 人),要求分别定义三个子函数分别进行数组输入、输出和求平均分。 相关知识 如果希望定义一个函数,能对一个数组整体进行操作,我们应该注意以下 3 点: 定义函数时,形参是一维数组,那么主

    2024年02月06日
    浏览(38)
  • PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享

    通过使用 PostgreSQL 的 C 函数接口,我们可以编写用 C 语言实现的函数,并将其集成到数据库中。这些函数可以在 SQL 查询中像其他内置函数一样被调用,从而扩展 PostgreSQL 的功能。 C 函数在某些情况下可以提供比 SQL 函数更高的执行效率,因为它们可以直接访问底层系统资源并

    2024年02月15日
    浏览(27)
  • 【Java基础】如何优雅的使用VS Code编写Java程序,并将自己的bug托管到GitHub上

    通常,编写Java程序的首选ide是Eclipse或者IntelliJ IDEA,它们对于Java大型项目友好度是其他ide难以企及的,但如果只是为了算法练习,或者是Java基础语法的学习,其实 VS Code 也是一个不错的选择,下面展示如何在 VS Code 上编写Java程序。 首先,保证自己的电脑上有jdk环境,如果还

    2023年04月12日
    浏览(46)
  • memcmp函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    memcmp()函数用于:比较两个内存块 函数声明:int memcmp ( const void * ptr1, const void * ptr2, size_t num ); 参数: ptr1:指向内存块的指针。 ptr2:指向内存块的指针。 数字:要比较的字节数。 返回值: 0: 在两个内存块中不匹配的第一个字节在  ptr1  中的值低于 在 ptr2  中的值(如果计

    2023年04月09日
    浏览(52)
  • strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

     strstr()函数用于:查找子字符串 目录 函数介绍 用法示例 函数讲解 实现函数  事例展示 函数声明:char *strstr(const char *str1, const char *str2) 头  文  件:#include string.h 返  回  值: 返回值为char * 类型( 返回指向  str1  中第一次出现的  str2  的指针);如果  str2  不是 

    2024年02月13日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包