代码之家  ›  专栏  ›  技术社区  ›  rnorouzian

在r的list()中创建条件(更改)名称

  •  1
  • rnorouzian  · 技术社区  · 7 年前

    我想知道是否有一种方法可以创建一个 条件名称 在R中 list() 是吗?

    例如,下面的if blue = TRUE ,我想输出我的列表 Nov. = 1 2 3 4 但是什么时候 blue = FALSE 我想输出我的列表 Sep. = 1 2 3 4 .

    以下是我的尝试(没有成功):

    bar <- function(blue = TRUE){
    
    list(if(blue) "Nov." else "Sep." = 1:4)
    }
    # Example of use:
    bar()
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Josh O'Brien    7 年前

    bar <- function(blue=TRUE) {
        x <- list(1:4)
        setNames(x, ifelse(blue, "Nov.", "Sep."))
    }
    
    bar()
    ## $`Nov.`
    ## [1] 1 2 3 4
    
    bar(FALSE)
    ## $`Sep.`
    ## [1] 1 2 3 4
    
        2
  •  1
  •   moodymudskipper    7 年前

    具有 tibble::lst rlang

    library(tibble)
    library(rlang)
    bar <- function(blue = TRUE){
      lst(!! (if(blue) "Nov." else "Sep.") := 1:4)
    }
    bar()
    # $`Nov.`
    # [1] 1 2 3 4
    bar(F)
    # $`Sep.`
    # [1] 1 2 3 4