选择大于列表中特定数字的元素
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]
我有一个结构类似于这样的大列表:
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]