R 函数返回值

很多时候,我们会需要我们的函数做一些处理并返回结果。这可以通过R中的return()函数来实现。


return()的语法

return(expression)

从函数返回的值可以是任何有效的对象。


示例:return()

我们来看一个例子,该例子将返回一个给定数字是正数、负数还是零。

check <- function(x) {
   if (x > 0) {
       result <- "Positive"
   }
   else if (x < 0) {
       result <- "Negative"
   }
   else {
       result <- "Zero"
   }
   return(result)
}

这里有一些示例运行。

> check(1)
[1] "Positive"

> check(-10)
[1] "Negative"

> check(0)
[1] "Zero"

没有return()的函数

如果没有显式从函数返回,则R会自动返回最后一个已计算表达式的值。

例如,下面的函数与上面的函数等效。

check <- function(x) {
   if (x > 0) {
       result <- "Positive"
   }
   else if (x < 0) {
       result <- "Negative"
   }
   else {
       result <- "Zero"
   }
   result
}

我们通常使用显式的return()函数立即从函数返回一个值。

如果它不是函数中的最后一个语句,它将过早地终止函数,并将控制权带回调用它的地方。

check <- function(x) {
   if (x>0) {
       return("Positive")
   }
   else if (x<0) {
       return("Negative")
   }
   else {
       return("Zero")
   }
}

在上面的示例中,如果x > 0,则函数会立即返回"Positive",而不会计算其主体中的其余部分。


多个返回值

return()函数只能返回一个对象。如果我们想在R中返回多个值,我们可以使用列表(或其他对象)并返回它。

下面是一个例子。

multi_return <- function() {
   my_list <- list("color" = "red", "size" = 20, "shape" = "round")
   return(my_list) 
}

在这里,我们创建一个包含多个元素的列表my_list并返回这个单一的列表。

> a <- multi_return()
> a$color
[1] "red"

> a$size
[1] 20

> a$shape
[1] "round"
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战