【问题标题】:selecting elements bigger than a particular number in a list在列表中选择大于特定数字的元素
【发布时间】:2020-12-24 05:37:05
【问题描述】:

我有一个类似这样结构的列表:

BigList = 
[[1]]
[1] matrix
[2] array
[3] data.frame
[4] data.frame
[5] integer
[6] character
  ...
[26]

[[2]]
[1] 
  ...
[26]

[[3]]
[1] 
  ...
[26]

[[4]]
... 

我正在尝试使用以下方法从每个列表的元素 5(在我的列表中命名为“n”)获取大于 10 的数据:

Listsubset = laply(BigList, function(x) x$n[n>10]) 不工作

也可以使用这个:

Listsubset = laply(filo_main_data, function(x) x$n >10) 哪个有效,但给了我一个逻辑信息(TRUE 或 FALSE)的结果,我想知道 n 的哪些值是 TRUE。

【问题讨论】:

    标签: r list subset apply


    【解决方案1】:

    我们可以使用lapply

     BigList[unlist(lapply(BigList, `[[`, "n")) > 10]
    
      
    

    【讨论】:

      【解决方案2】:

      您可以使用Filter

      Listsubset <- Filter(function(x) x$n > 10, BigList)
      

      sapply 的替代方案:

      Listsubset <- BigList[sapply(BigList, `[[`, 'n') > 10]
      

      【讨论】:

      • 请问运算符'[['是什么意思?
      • @BMT [[ 是将值提取为向量。这里在BigList 的每个元素中,我们将其中名称为“n”的元素提取为向量,并将其与10 (&gt; 10) 进行比较。有关详细信息,请参阅?Extract
      • 感谢您的回复和提示,@Ronak Shah。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      相关资源
      最近更新 更多