从另一个列表索引列表元素

娜迪娜厄尔尼诺

我有一个问题,我有两个列表。每个都存储了 3 个长度相同的向量。唯一的区别是在 list_A 中我有数值,而在 list_B 中我有逻辑值。我想从 list_B 中提取逻辑向量中真实值的索引,并使用它们的索引从 list_A 中提取值。

listA <- list(c(14,6,4,6,14,5,14,13,4,6,14,14,3,10,14,13,6),c(16,3,8,16,11,5,4,16,17,15,16,10),c(11,5,6,3,5,4,6,13,14,5,5,14,14,13,6,9))

listB <- list(c("FALSE","FALSE","FALSE" ,"FALSE" ,"FALSE" ,"FALSE", "FALSE" ,"FALSE" ,"FALSE" ,"FALSE" ,"FALSE" ,"FALSE" ,"FALSE", "FALSE", "FALSE", "FALSE", "FALSE"),
              c("FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "TRUE",  "FALSE", "FALSE", "FALSE"),
              c("FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "FALSE", "TRUE",  "FALSE", "FALSE", "FALSE"))

IDs <- lapply(listB, function(x) which(x==T))

# Which command could I use to extract the numeric value from listA for TRUE cases?

有人可以帮助我吗?娜丁

DS_UNI

好吧,您实际上可以直接使用逻辑向量而无需提取索引,例如:

my_vec <- c(2, 5, 12, 8, 0, 90)
my_vec[c(TRUE, TRUE, FALSE, FALSE, FALSE, TRUE)]

但是您提供的示例中的主要问题是这listB不是真正的逻辑(布尔值),其中的元素属于字符类型,因为您在它们周围使用了引号,因此如果您的原始数据是字符类型,则需要将其转换为逻辑或使用=="TRUE"

因为这只能用 vectros(而不是列表)来完成,而且你已经有两个列表可以循环,mapply所以基本上会使用

mapply(function(vec1, vec2) vec2[vec1=="TRUE"], listB, listA)

或者

mapply(function(vec1, vec2) vec2[as.logical(vec1)], listB, listA)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

更改所有元素对应于另一个列表索引列表

将列表的所有元素相乘(另一个列表索引超出范围)

创建一个元素列表可以依赖另一个列表的列表

从具有另一个列表中给定索引的列表元素中提取

Python-与条件匹配的另一个列表的元素的索引列表

根据存储在另一个列表中的索引替换列表中的元素

识别列表中的不同元素并将其映射到python中另一个列表中的对应索引

Python:按与另一个列表匹配的索引元素过滤列表

根据另一个列表的索引生成一个列表

Python-查找与另一个列表的元素匹配的列表元素的索引

根据另一个列表或数组查找数组/列表中元素的索引

对特定索引处的嵌套列表的元素以及另一个普通列表的元素的索引进行迭代

如何在包含相同元素的另一个列表中找到一个列表的元素索引?

从另一个列表的第N个索引追加列表,并根据元素数重复

如何根据另一个列表中另一个元素的索引从列表中写出元素?

从另一个列表创建一个列表,并按某些索引过滤

获取numpy另一个列表中元素的索引

根据另一个列表给出的索引交换元素

根据另一个列表中的元素重复一个列表中的元素

根据另一个列表中的索引汇总一个列表中的元素

使用张量流中的另一个索引列表访问张量的元素

基于python中另一个列表的索引的列表特定元素的总和

查找与另一个列表对应的元素的索引

如何使用一个列表中的每个元素作为另一个列表的索引?

python - 通过与另一个列表的元素进行比较来查找列表中元素索引的最快方法

根据另一个列表中元素的索引对列表进行排序

将列表插入另一个列表,每个元素都有索引

与另一个列表进行比较,确定列表中所有元素的索引

从列表中删除重复项并删除另一个列表中相同索引处的元素