用R中的索引数组访问列表中的向量

J·克拉默

我有一个包含3个向量的列表,例如:

> test_list
[[1]]
[1] "a" "b"

[[2]]
[1] "c" "d" "e"

[[3]]
[1] "f" "g"

我想使用包含向量索引的数组访问这些向量的元素,例如:

> indices
     [,1] [,2] [,3]
[1,]    1    3    2
[2,]    2    2    2

这是所需的输出:

     [,1] [,2] [,3]
[1,] "a"  "e"  "g"
[2,] "b"  "d"  "g"

我发现以下方法可以做到:

test_list <- list(c("a", "b"), c("c", "d", "e"), c("f", "g"))
indices <- matrix(c(1, 3, 2, 2, 2, 2), nrow = 2, ncol = 3, byrow = TRUE)
t(apply(indices, 1, function(row){mapply(`[[`, test_list, row)}))

有没有更清洁,更惯用的方式?

tmfmnk

一种涉及的选择purrr可能是:

map2(.x = test_list, 
     .y = asplit(indices, 2),
     ~ .x[.y]) %>%
 transpose()

[[1]]
[1] "a" "e" "g"

[[2]]
[1] "b" "d" "g"

base R使用@nicola提供的注释中的想法解决方案:

mapply(`[`, test_list, asplit(indices, 2))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用索引向量访问R中的n维数组

来自分类Dev

从R中的向量列表中索引特定的数字向量

来自分类Dev

通过R中的数组索引向量

来自分类Dev

通过R中的数组索引向量

来自分类Dev

用R中的向量替换列表

来自分类Dev

用R中的向量替换列表

来自分类Dev

试图访问向量中的索引

来自分类Dev

访问列表中的索引

来自分类Dev

用列表中的索引替换数组中的值

来自分类Dev

访问不在给定索引列表中的NumPy数组元素

来自分类Dev

访问列表中索引的名称

来自分类Dev

在Matlab中向量化数组索引/子集

来自分类Dev

R中向量中各处的重复索引

来自分类Dev

子集R中的列表向量

来自分类Dev

从R中的向量生成列表

来自分类Dev

C ++:访问向量列表中的某些元素

来自分类Dev

C ++:访问向量列表中的某些元素

来自分类Dev

用R中的向量列表替换小标题列表中的指定列

来自分类Dev

访问结构数组中向量的元素

来自分类Dev

根据R中的列表中给定的索引提取向量的元素

来自分类Dev

访问数组列表中的对象

来自分类Dev

列表中的python数组索引列表

来自分类Dev

列表列表中的R和向量

来自分类Dev

R中按值的索引向量

来自分类Dev

在R中创建带有索引的向量

来自分类Dev

R中逻辑向量的最近索引

来自分类Dev

在R中,如何读取索引向量?

来自分类Dev

R中按值的索引向量

来自分类Dev

R:合并元素并移除向量中的索引