首页 > 解决方案 > 函数未在 R 中返回输出

问题描述

我有一个函数,它接受一个向量并返回一些输出。

my.function <- function(x){

   if (1 %in% x) {

     first.data <- data.frame(a = c(1, 2), b = c("a", "b"))
     return(first.data)    
   }

   if (2 %in% x){

   second.data <- data.frame(a = c("I", "II"), b = c("a", "b"))
   return(second.data) 
}}

my.function(x = c(1, 2))
  a b
  1 a
  2 b

为什么我的函数不能同时first.data返回second.data

标签: rfunction

解决方案


每当return执行语句时,它都不会执行函数中的下一步。如果要返回两个输出,请使用return发送最终输出。

my.function <- function(x){
    first.data<-data.frame()
    second.data<-data.frame()
    if (1 %in% x) {
    first.data <- data.frame(a = c(1, 2), b = c("a", "b"))
    }

    if (2 %in% x){
        second.data <- data.frame(a = c("I", "II"), b = c("a", "b"))
    }
    return(list(first.data,second.data))
}

推荐阅读