首页 > 解决方案 > 如何根据 R 中 data.frame 中给出的数据获取列表中所有元素的索引?

问题描述

我有一个数据框和一个列表,如下所示:

> df
               value
1                5
2               25
3                6
4               70

并列出:

> y

[[1]]
[1]  5 6 70 25

[[2]]
[1]  6 70 5 25

如何使列表返回每个元素的索引,使其成为:

> y

[[1]]
[1]  1 3 4 2

[[2]]
[1]  3 4 1 2

标签: r

解决方案


我们可以通过循环并匹配 'df' 的 'value' 列match来获取索引list

lapply(y, function(x) match(x, df$value))
#[[1]]
#[1] 1 3 4 2

#[[2]]
#[1] 3 4 1 2

或者没有匿名函数

lapply(y, match, df$value)

数据

df <- data.frame(value = c(5, 25, 6, 70))
y <- list(c(5, 6, 70, 25), c(6, 70, 5, 25))

推荐阅读