R语言中自定义函数以函数的加载调用
1、自定义函数
test1 <- function(x,y){ a = (x + y) print(a) }
test2 <- function(x, y){ a = x - y print(a) }
test3 <- function(x, y){ a = x * y print(a) }
test4 <- function(x, y){ a = x / y print(a) }
分别保存为4个文件 test1.r、test2.r、test3.r、test4.r。
2、函数的加载
dir() source("test1.r") source("test2.r") source("test3.r") source("test4.r")
3、函数的调用
(1)、默认位置参数
test1(10,20) (默认情况下是位置参数) test2(10,20) test3(10,20) test4(10,20)
(2)、使用关键字参数
test2(x = 10, y = 20) ## 关键字参数 test2(x = 20, y = 10)
(3)、修改test1.r,测试默认参数
test1 <- function(x = 4, y){ a = x + y print(a) }
source("test1.r")
test1(x = 10, y = 20)
test1(y = 20) ## 不指定x的值时,默认参数 4起作用
4、批量加载函数
方法1:
remove(list = ls()) dir() r <- dir()[substr(dir(),nchar(dir())-1,nchar(dir())) == ".r"] r for (i in 1:length(r)) { source(r[i]) }
方法2:
rm(list = ls()) for (i in dir()) { if (substr(i, nchar(i)-1, nchar(i)) == ".r"){ source(i) } }
方法3:
rm(list = ls())
library(stringi) for (i in dir()) { if(stri_sub(i, -2, -1) == ".r"){ source(i) } }
方法4:
rm(list = ls()) for (i in list.files(pattern=".r$")) { source(i) }