【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文件夹及其子文件夹

相关推荐
EasyCVR7 分钟前
EasyRTC嵌入式音视频通话SDK:基于纯C语言的跨平台实时通信系统设计与实践
linux·c语言·开发语言·音视频·webrtc·h.265
qq_447663051 小时前
《Spring日志整合与注入技术:从入门到精通》
java·开发语言·后端·spring
蜡笔小新星2 小时前
OpenCV中文路径图片读写终极指南(Python实现)
开发语言·人工智能·python·opencv·计算机视觉
七七知享2 小时前
2024 Qiniu 跨平台 Qt 高级开发全解析
开发语言·qt·零基础·操作系统·跨平台·qt5·精通
脏脏a2 小时前
C 语言分支与循环:构建程序逻辑的基石
c语言·开发语言
结衣结衣.2 小时前
【Qt】带参数的信号和槽函数
开发语言·qt·c++11
冷琴19962 小时前
基于Python+Vue开发的电影订票管理系统源码+运行步骤
开发语言·vue.js·python
L Jiawen2 小时前
【Python 2D绘图】Matplotlib绘图(统计图表)
开发语言·python·matplotlib
Run_Teenage3 小时前
C语言每日一练——day_4
c语言·开发语言
SongYuLong的博客3 小时前
C# WPF 串口通信
开发语言·c#·wpf