选择大于列表中特定数字的元素

selecting elements bigger than a particular number in a list

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

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。

您可以使用 Filter :

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

或者 sapply 的替代方案:

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

我们可以使用lapply

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