【R语言】函数
一、函数格式
如下所示:
- hello:函数名;
- function:定义的R对象是函数而不是其它变量;
- ():函数的输入参数,可以为空,也可以包含参数;
- {}:函数体,如果函数体只有一行,可以省略{}。
hello <- function() {
out <- "hello, ning."
return(out)
}
hello()
二、函数参数
函数参数可以是变量中的任何一种:向量、矩阵、数据框、列表、因子、逻辑值等。
1、缺省参数
缺省参数是在函数参数声明中对函数的某个参数指定的默认值。此处不过多赘述。
2、额外参数
R语言中称之为点点点(...)参数。额外参数允许函数具有除函数体所需输入参数之外的其它参数,并且不需要在函数参数声明中一一指定,具有很大的灵活性。
额外参数可以解决函数参数不确定或需要引用其它函数输出值作为输入参数的问题。
hello <- function(name = NULL, ...){
out <- paste("你好," name)
return(out)
}
hello(name = "R", extra = "Python")
hello()
三、函数返回值
函数返回值可以是任何R语言对象。
- 函数最后一行代码如果不是进行变量赋值的话,那么最后一行代码的运行值会自动返回。
- 使用return命令清晰指定需要返回的值,并告知函数退出运行。
四、函数调用
R函数有两种调用方式:
- 最常见的是通过函数名称调用;
- 其次是通过 do.call()函数 形式,使用此方法时,需要先指定被调用函数的名称,然后以列表形式指定被调用函数的参数值。
如下示例为第二种调用方式:
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文件夹及其子文件夹