r语言lm函数找不到对象_R语言笔记6:在R中写一些简单的函数、functions基础和作用域...

本文介绍了R语言中如何创建和使用自定义函数,包括设置参数、返回值、缺省值以及处理缺失值。通过示例展示了如何编写函数来执行加法、过滤向量以及计算矩阵列平均值,解释了函数作用域和惰性求值的概念。
摘要由CSDN通过智能技术生成

R语言基础系列:

Your first R function命令一个函数时,一般不写在交互式命令行里,而是写在一个空白的文本文件中,即把函数放在一个R包中,这里面包含着文档(documentation),是一个更加结构化的环境。

我们使用的软件是RStudio,左上角新建一个新的R脚本来写代码。

Example 1

举个例子,简单了解一下如何使用函数的语法、如何指定参数以及如何返回结果:

命令一个简单的函数,求x, y的和。

## 给函数赋值为add2,第一行小括号里写进变量,第二行大括号里写入运算

add2function(x,y){

x+y

}

## 因为R函数会返回最后一个表达式的值,所以不用写返回

在控制台(console)运行脚本,赋值后即可得到结果:

>add2function(x,y){

+x+y

+}

>add2(7,5)

[1]12

Example 2

下一个例子稍微复杂一点:

我们要输入一个数字向量,然后返回这个向量的子集(返回其中大于10的数字)

above10function(x){##  命名变量

usex>10##  逻辑语句,来判断变量x是否大于10

x[use]##  取子集

}

运行:

>above10function(x){

+usex>10

+x[use]

+}

>x1:16

>above10(x)

[1]111213141516

>above10(1:9)

integer(0)

如果我们不设置10,而是改成任意数字n,以上命令可改写为:

abovefunction(x,n){

usex>n

x[use]

}

运行:

>abovefunction(x,n){

+usex>n

+x[use]

+}

>x1:16

>above(x,12)

[1]13141516

设置“缺省值”(可以理解为默认值),即如果在函数运行过程中不指定n的值时,系统自动筛选的标准:

abovefunction(x,n=10){## 设置缺省值为10

usex>n

x[use]

}

这时当你运行函数时:

>abovefunction(x,n=10){

+usex>n

+x[use]

+}

>above(x)## 自动筛选数字向量中大于10的数字

[1]111213141516

Example 3

下面这个例子再复杂一点,我们要给函数一个参数,然后使用循环遍历这个函数的每一列:

比如,取一个矩阵,然后计算每列的平均值:

columnmeanfunction(x){## 给函数命名,设置参数x,用于储存矩阵

ncncol(x)## 计算矩阵中有多少列

meansnumeric(nc)## 设置数值向量储存列数࿰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值