【问题标题】:Subsetting of Lists in RR中列表的子集
【发布时间】:2013-06-11 15:42:23
【问题描述】:

我有几个关于在 R 中使用 [] 运算符对命名列表进行子集化的问题:

例如,考虑列表formals <- list(x = DOUBLE, y = DOUBLE, z = NULL)。在本例中,DOUBLE 在 R 中被视为一个符号。

1) 我应该如何检索所有不等于NULL 的元素。我试过formals[formals != NULL],但这只会返回一个list类型的对象,没有成员。

2) 我应该如何检索名称满足条件的元素。例如,如何获取名称不是z 的所有元素?我可以使用names(formals),但这很麻烦,我希望使用[] 快速解决问题。

【问题讨论】:

    标签: r list subset


    【解决方案1】:

    第一个问题的另一种选择:

    Filter(Negate(is.null), formals)
    

    对于第二种情况,您必须使用names。这是一种方法:

    formals[names(formals) != 'z']
    

    formals实际上是R中的一个函数。在命名变量时最好避免使用函数名称。

    【讨论】:

      【解决方案2】:

      这将适用于您的第一个问题:

      formals[!unlist(lapply(formals, is.null))]
      

      我认为您不能避免在第二个问题中使用names

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-29
        • 2020-10-10
        • 2019-09-29
        • 1970-01-01
        • 2020-04-27
        • 2018-09-21
        相关资源
        最近更新 更多