R函数用法大全与实战入门指南
时间:2026-08-15 | 作者:清风无痕 | 阅读:0函数是一组一起执行一个任务的语句。R 语言本身提供了很多的内置函数,当然我们也可以自己创建函数。
您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的。
但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。
函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。
R 语言中函数是一个对象,可以拥有属性。
定义函数
函数定义通常由以下几个部分组成:
- 函数名: 为函数指定一个唯一的名称,以便在调用时使用。
- 参数: 定义函数接受的输入值。参数是可选的,可以有多个。
- 函数体: 包含实际执行的代码块,用大括号
{}括起来。 - 返回值: 指定函数的输出结果,使用关键字
return。
R 语言中的函数定义使用 function 关键字,一般形式如下:
function_name <- function(arg_1, arg_2, ...) {
# 函数体
# 执行的代码块
return(output)
}
说明:
- function_name : 为函数名
- arg_1, arg_2, ... : 形式参数列表
函数返回值使用 return()。
以下是一个简单的例子,展示如何定义和使用函数:
实例
# 定义一个加法函数
add_numbers <- function(x, y) {
result <- x + y
return(result)
}
# 调用函数
sum_result <- add_numbers(3, 4)
print(sum_result) # 输出 7
这段代码很好理解。先定义了一个名为 add_numbers 的函数,用来接收两个参数 x 和 y。
进入函数后,代码会把这两个参数相加,并把得到的结果放进变量 result 里。接着,通过 return 关键字把这个结果返回出去。
调用函数也很直接。写上函数名,再把参数按顺序放进参数列表里,函数就会接收这些值并开始执行。
在这个例子中,调用的是 add_numbers 函数,传入的参数分别是 3 和 4。函数运行完成后,会返回结果 7。这个结果随后被保存到变量 sum_result 中,最后再打印出来。
自定义函数
我们可以自己创建函数,用于特定到功能,定义后可以向内置函数一样使用它们。
下面演示两如何自定义函数:
实例
# 定义一个函数,用于计数一个系列到平方值
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
接下来我们可以调用函数:
实例
new.function <- function(a) {
for(i in 1:a) {
b <- i^2
print(b)
}
}
# 调用函数,并传递参数
new.function(6)
执行以上代码,输出结果为:
[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[1] 36
我们也可以创建一个不带参数的函数:
实例
new.function <- function() {
for(i in 1:5) {
print(i^2)
}
}
# 调用函数,不需要传递参数
new.function()
执行以上代码,输出结果为:
[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
带有参数值的函数
函数参数,可以按函数创建时的顺序来传递,也可以不按顺序,但需要指定参数名:
实例
# 创建函数
new.function <- function(a,b,c) {
result <- a * b + c
print(result)
}
# 不带参数名
new.function(5,3,11)
# 带参数名
new.function(a = 11, b = 5, c = 3)
执行以上代码,输出结果为:
[1] 26
[1] 58
函数创建时也可以为参数指定默认值,如果调用的时候不传递参数就会使用默认值:
实例
# 创建带默认参数的函数
new.function <- function(a = 3, b = 6) {
result <- a * b
print(result)
}
# 调用函数,但不传递参数,会使用默认的
new.function()
# 调用函数,传递参数
new.function(9,5)
执行以上代码,输出结果为:
[1] 18
[1] 45
懒惰计算的函数
懒惰计算将推迟计算工作直到系统需要这些计算的结果。如果不需要结果,将不用进行计算。
默认情况下,R 函数对参数的计算是懒惰的。也就是说,只有我们在计算它的时候才会调用:
实例
f <- function(x) {
10
}
f()
执行以上代码,输出结果为:
[1] 10
以上代码执行,并没有报错。虽然我们没有传入参数,但函数体内没有使用参数 x,所以不会去调用它,也不会报错。
实例
new.function <- function(a, b) {
print(a^2)
print(a)
print(b) # 使用到 b,但未传入,所以会报错
}
# 传入一个参数
new.function(6)
执行以上代码,输出结果为:
[1] 36
[1] 6
Error in print(b) : 缺少参数"b",也没有缺省值
Calls: new.function -> print
停止执行
内置函数
R 语言提供了很多有用的内置函数,我们无需定义它就可以直接使用。
例如:seq()、mean()、max()、sum(x) 以及 paste(...) 等。
实例
# 输出 32 到 44 到的所有数字
print(seq(32,44))
# 计算两个数的平均数
print(mean(25:82))
# 计算 41 到 68 所有数字之和
print(sum(41:68))
执行以上代码,输出结果为:
[1] 32 33 34 35 36 37 38 39 40 41 42 43 44
[1] 53.5
[1] 1526
sum(): 计算向量或矩阵的总和。
实例
# 向量求和
x <- c(1, 2, 3, 4, 5)
total <- sum(x)
print(total) # 输出 15
# 矩阵求和
matrix <- matrix(1:9, nrow = 3)
total <- sum(matrix)
print(total) # 输出 45
mean():计算向量或矩阵的平均值。
实例
# 向量平均值
x <- c(1, 2, 3, 4, 5)
a vg <- mean(x)
print(a vg) # 输出 3
# 矩阵平均值
matrix <- matrix(1:9, nrow = 3)
a vg <- mean(matrix)
print(a vg) # 输出 5
paste(): 将多个字符串连接成一个字符串。
实例
x <- "Hello"
y <- "World"
result <- paste(x, y)
print(result) # 输出 "Hello World"
length(): 返回向量的长度或对象的元素个数。
实例
x <- c(1, 2, 3, 4, 5)
length_x <- length(x)
print(length_x) # 输出 5
matrix <- matrix(1:9, nrow = 3)
length_matrix <- length(matrix)
print(length_matrix) # 输出 9
str(): 显示对象的结构和内容摘要。
实例
x <- c(1, 2, 3, 4, 5)
str(x)
# 输出:
# num [1:5] 1 2 3 4 5
matrix <- matrix(1:9, nrow = 3)
str(matrix)
# 输出:
# int [1:3, 1:3] 1 2 3 4 5 6 7 8 9
以上只列举了一小部分的 R 语言函数实例。
R 有大量的内置函数和扩展包提供的函数,可以满足各种数据处理、统计分析、绘图等需求。
您可以查阅 R 语言的官方文档,获得更详细的函数列表和使用说明。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- R语言解压与压缩tar.gz、zip等格式文件方法
- 时间:2026-08-17
-
- VSCode配置Move智能合约开发环境教程
- 时间:2026-08-17
-
- Notepad++配置R语言开发与运行环境教程
- 时间:2026-08-17
-
- Sublime Text配置R语言运行环境与数据分析脚本搭建
- 时间:2026-08-17
-
- CentOS系统中Fortran与R语言数据可视化方法
- 时间:2026-08-17
-
- VSCode配置Elixir与Phoenix框架开发环境设置
- 时间:2026-08-17
-
- Sublime配置R语言开发环境教程:R脚本高亮与运行
- 时间:2026-08-17
-
- VSCode中R语言开发如何优化Httpgd图形显示与数据透视
- 时间:2026-08-17
精选合集
更多大家都在玩
大家都在看
更多-
- 蚂蚁新村小课堂今日答案10月23日 江苏溧阳的跳幡神是一种
- 时间:2026-10-23
-
- 蚂蚁新村2026年10月23日答案最新
- 时间:2026-10-23
-
- 蚂蚁庄园答案2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园今天答题答案2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园今日答案2026年10月24日
- 时间:2026-10-23
-
- 秦始皇陵地宫至今未发掘,主要原因是 蚂蚁庄园今日答案10.24
- 时间:2026-10-23
-
- 小鸡答题今天的答案是什么2026年10月24日
- 时间:2026-10-23
-
- 蚂蚁庄园每日答题答案2026年10月24日
- 时间:2026-10-23
