【R语言】函数

一、函数格式

如下所示:

  • hello:函数名;
  • function:定义的R对象是函数而不是其它变量;
  • ():函数的输入参数,可以为空,也可以包含参数;
  • {}:函数体,如果函数体只有一行,可以省略{}。
R 复制代码
hello <- function() {
    out <- "hello, ning."
    return(out)
}
hello()

二、函数参数

函数参数可以是变量中的任何一种:向量、矩阵、数据框、列表、因子、逻辑值等。

1、缺省参数

缺省参数是在函数参数声明中对函数的某个参数指定的默认值。此处不过多赘述。

2、额外参数

R语言中称之为点点点(...)参数。额外参数允许函数具有除函数体所需输入参数之外的其它参数,并且不需要在函数参数声明中一一指定,具有很大的灵活性。

额外参数可以解决函数参数不确定或需要引用其它函数输出值作为输入参数的问题。

R 复制代码
hello <- function(name = NULL, ...){
    out <- paste("你好," name)
    return(out)
}
hello(name = "R", extra = "Python")
hello()

三、函数返回值

函数返回值可以是任何R语言对象。

  • 函数最后一行代码如果不是进行变量赋值的话,那么最后一行代码的运行值会自动返回。
  • 使用return命令清晰指定需要返回的值,并告知函数退出运行。

四、函数调用

R函数有两种调用方式:

  • 最常见的是通过函数名称调用;
  • 其次是通过 do.call()函数形式,使用此方法时,需要先指定被调用函数的名称,然后以列表形式指定被调用函数的参数值。

如下示例为第二种调用方式:

R 复制代码
do.call(what = hello, args = list(name = "R"))

五、常用R函数

1、文件操作函数

查看目录和文件函数

getwd():查看当前工作目录

list.dirs(path=getwd(),full.names=F):查看当前目录或指定目录的子目录

dir():查看当前子目录

list.dir():查看当前子目录的文件

file.info(list.files(),extra_cols=F):查看当前目录的子目录及文件的详细信息

file.mode(list.files()):查看当前目录及文件权限信息

file.mtime(list.files()):查看当前目录及文件最近一次修改信息

file.size(list.files()):查看当前目录及文件大小

system("tree"):查看目录结构。

检查目录和文件函数

file.exists():查看文件是否存在

file_test(op="-d", x="wn"):查看wn是否是目录

file_test(op="-f", x = "wn.txt"):查看wn.txt是否是文件

创建目录和文件函数

path.expand():将输入文件目录替换为当前系统平台支持的文件目录

file.create():创建空白文件

dir.create():创建空白目录

变更目录和文件函数

file.copy(from="test.R", to="test",overwrite=T,recursive=T):赋值文件test.R到test文件夹里。

file.name(from="test.R", to="test1.R"):将文件test.R重命名为test1.R

file.append(file1="test.R", file2="test1.R"):将test.R追加到test1.R中

删除目录和文件函数

file.remove(c("test1.R","test.R")):删除文件test1.R和test.R

unlink("test",recursive=T):删除test文件夹及其子文件夹

相关推荐
醇氧1 天前
【Windows】优雅启动:解析一个 Java 服务的后台启动脚本
java·开发语言·windows
MapGIS技术支持1 天前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
程序员zgh1 天前
C++ 互斥锁、读写锁、原子操作、条件变量
c语言·开发语言·jvm·c++
小灰灰搞电子1 天前
Qt 重写QRadioButton实现动态radioButton源码分享
开发语言·qt·命令模式
by__csdn1 天前
Vue3 setup()函数终极攻略:从入门到精通
开发语言·前端·javascript·vue.js·性能优化·typescript·ecmascript
喵了meme1 天前
C语言实战5
c语言·开发语言
廋到被风吹走1 天前
【Java】常用设计模式及应用场景详解
java·开发语言·设计模式
Sammyyyyy1 天前
DeepSeek v3.2 正式发布,对标 GPT-5
开发语言·人工智能·gpt·算法·servbay
Luna-player1 天前
在前端中,<a> 标签的 href=“javascript:;“ 这个是什么意思
开发语言·前端·javascript
小草cys1 天前
项目7-七彩天气app任务7.4.2“关于”弹窗
开发语言·前端·javascript