📅  最后修改于: 2023-12-03 15:19:40.866000             🧑  作者: Mango
在 R 语言中,函数被认为是一等公民,这意味着函数可以像其他对象一样被传递、存储和操作。在本文中,我们将介绍 R 语言中函数的一些基础知识,包括函数定义、参数传递、返回值和变量作用域等。
在 R 语言中,函数可以使用 function
关键字定义。下面是定义一个简单函数的示例代码:
my_function <- function(x, y) {
z <- x + y
return(z)
}
以上代码定义了一个名为 my_function
的函数,该函数接受两个参数 x
和 y
,并返回它们的和。
在 R 语言中,函数参数可以按照位置或名称传递。下面是一个按照位置传递参数的示例:
result <- my_function(3, 4)
在上面的示例中,3
和 4
分别对应函数 my_function
中的 x
和 y
参数。
你也可以按名称传递参数,这样做可以允许你跳过一些参数或者以不同的顺序指定参数。下面是一个按名称传递参数的示例:
result <- my_function(y = 4, x = 3)
在上面的示例中,x
和 y
参数被以不同的顺序指定。
在 R 语言中,函数可以使用 return
语句返回一个值。如果 return
语句被省略,则函数将返回最后一个执行的表达式的值。下面是一个返回值的示例:
my_function <- function(x, y) {
z <- x + y
return(z)
}
result <- my_function(3, 4)
print(result) # 输出为 7
在上面的示例中,函数使用 return
语句返回 z
的值,函数被调用时 result
变量被赋值为 7
。
在 R 语言中,变量的作用域分为全局作用域和局部作用域。全局作用域中的变量可以在函数内部和外部使用,而局部作用域中的变量只能在函数内部使用。
下面是一个局部作用域的示例:
my_function <- function(x, y) {
z <- x + y
print(z) # 局部变量 z
}
z <- 0 # 全局变量 z
my_function(3, 4)
print(z) # 全局变量 z,输出为 0
在上面的示例中,z
是在函数内部定义的局部变量。在函数中,局部变量 z
被赋值为 7
,然后被打印出来。在函数返回后,全局变量 z
的值仍然是 0
。
如果要在函数内部访问全局变量,可以使用 <<-
运算符。下面是一个访问全局变量的示例:
my_function <- function(x, y) {
z <<- x + y
}
z <- 0
my_function(3, 4)
print(z) # 输出为 7
在上面的示例中,我们使用 <<-
运算符将 z
定义为全局变量。在函数内部,我们将 z
的值赋为 7
。在函数返回后,全局变量 z
的值也被修改成了 7
。
在 R 语言中,函数是一等公民,可以像其他对象一样被传递、存储和操作。函数可以按照位置或名称传递参数,并且可以使用 return
语句返回一个值。变量的作用域分为全局作用域和局部作用域,可以使用 <<-
运算符访问全局变量。