假设我创建了一个这样的列表:
y <- split(USArrests , USArrests$Murder)
如何返回包含此列表中某些值的列表的索引:
例如: 在其中一项(2.7)中,强奸等于14.9
如何在此处返回2.7值或索引?
答案 0 :(得分:1)
假设数据已经拆分,则可以
names(y)[sapply(y, function(x) any(x$Rape == 14.9))]
#[1] "2.7" "6.3"
如果不拆分数据,它将变成简单的子集
USArrests$Murder[USArrests$Rape == 14.9]
我们也可以使用Filter
names(Filter(function(x) any(x$Rape == 14.9), y))
以及使用purrr::keep
names(purrr::keep(y, ~any(.$Rape == 14.9)))
答案 1 :(得分:0)
我们可以将sapply
与%in%
一起使用
names(y)[sapply(y, function(x) 14.9 %in% x$Rape)]
#[1] "2.7" "6.3"
或者使用map
中的purrr
library(purrr)
map_lgl(y, ~ 14.9 %in% .x$Rape) %>%
which %>%
names
#[1] "2.7" "6.3"