首页 > 解决方案 > 检查值列表是否在范围列表内(逐类)

问题描述

我需要知道(给定类的)给定值是否在范围内。我试图一起使用 apply 和 lapply 来解决我的问题,但没有成功。这是我正在尝试做的一个例子。

假设“mylist”是一个列表列表:

df1<-data.frame(classA=5.5,classB=6.3)
df2<-data.frame(classA=c(4.2,5.5),classB=c(5.1,6.2))
df3<-data.frame(classA=5.7,classB=4.2)
df4<-data.frame(classA=c(5.2,6.3),classB=c(4.0,5.0))
mylist<-list(list(df1,df2),list(df3,df4)) 

我希望结果是这样的:

list(data.frame(TRUE,FALSE),data.frame(TRUE,TRUE))

谢谢

标签: r

解决方案


可能是一种更简单的方法来做到这一点

btw <- function(val, vec) {
    purrr::map2_lgl(val, vec, ~dplyr::between(.x, .y[1], .y[2]))
}

purrr::map(mylist, ~btw(.x[[1]], .x[[2]]))

# [[1]]
# classA classB 
  # TRUE  FALSE 

# [[2]]
# classA classB 
  # TRUE   TRUE

推荐阅读