首页 > 解决方案 > 如何使用函数中包含的列表

问题描述

我敢肯定这是糟糕的功能设计,但这里......

我有一个函数可以将一些术语映射到其他一些术语。细节在这里不相关。

在函数中,我有一个字符列表。我想将此列表用于不同的目的。如何引用函数中包含的列表?

例如:

TermMapping<-function(param){



###The list I want to refer to
 tofind <-
    paste(
      c(
        "Ascending","Descending","Sigmoid","Rectum","Transverse",
        "Caecum","Splenic","Ileum","Rectosigmoid",
        "Ileocaecal","Hepatic","Colon","Terminal","Terminal Ileum",
        "Ileoanal","Prepouch","Pouch","Anastomosis",
        "Stomach","Antrum","Duodenum","Oesophagus","GOJ"
      ),
      collapse = "|"
    )

###something done to param here- details not included but it uses the list above.....


return(dataframe)
}

标签: r

解决方案


我能想到的两个选择:

  1. 如果您需要该列表用于多种用途,为什么它在函数内部?您可以在函数外部定义列表(可能作为自己的函数),然后将列表作为参数传递。

  2. 您可以将列表作为函数的一部分返回。您的函数返回dataframe,因此您可以更改返回值以返回 df 和列表。

    TermMapping<-function(param){
    
    
    
    ###The list I want to refer to
    tofind <-
      paste(
        c(
    "Ascending","Descending","Sigmoid","Rectum","Transverse",
    "Caecum","Splenic","Ileum","Rectosigmoid",
    "Ileocaecal","Hepatic","Colon","Terminal","Terminal Ileum",
    "Ileoanal","Prepouch","Pouch","Anastomosis",
    "Stomach","Antrum","Duodenum","Oesophagus","GOJ"
    ),
    collapse = "|"
    )
    
    ###something done to param here- details not included but it uses the list above.....
    
    
    return(list(my_df = dataframe,
        myList = tofind))
    }
    

推荐阅读