我想找到嵌套列表和目标值(11)的匹配索引。
Data:
f <- list(
list(1, 2, 3),
list(4, 5, list(8, list(11, 12)))
)
目标值 = 11 的所需输出:
c(2, 3, 2, 1)
Printed:
f
[[1]]
[[1]][[1]]
[1] 1
[[1]][[2]]
[1] 2
[[1]][[3]]
[1] 3
[[2]]
[[2]][[1]]
[1] 4
[[2]][[2]]
[1] 5
[[2]][[3]]
[[2]][[3]][[1]]
[1] 8
[[2]][[3]][[2]]
--->>> [[2]][[3]][[2]][[1]] <<<----
-->>>> [1] 11 <<<----
[[2]][[3]][[2]][[2]]
[1] 12
我尝试过的:
与 匹配unlist(data)
, 寻找参数which()
并展望arrInd()
.
我会避免在 R 中运行多个 for 循环。最好在 C、C++ 中执行所有循环……在自己实现之前,我想检查是否缺少某个函数。
你可以试试melt()
from reshape2
:
melted_lst <- reshape2::melt(f)
melted_lst[sort(colnames(melted_lst))][melted_lst$value == 11, ]
L1 L2 L3 L4 value
7 2 3 2 1 11
Or with melt()
from data.table
(正如@IceCreamToucan 提到的):
melted_lst <- data.table::melt(f)
melted_lst[sort(colnames(melted_lst))][melted_lst$value == 11, ]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)