R 中列表的比较

Comparisons of lists in R

我正在尝试将一个数值变量列表与另一个变量列表进行比较,其中每个变量本身就是一个数字列表。在 R 中处理它的最佳方法是什么?

例如:

a=10
b=20
c=30
d=40
list1 <- c(a,b,c,d)

e <- c(1,2,3,4,5)
f <- c(6,7,8,9,10)
g <- c(11,12,13,14)
h <- c(15,16,17,18)
list2 <- c(e,f,g,h)

我想知道 list1 的每个元素是否大于 list2 中每个变量列表的每个元素。

你可以做一个嵌套地图

a=10
b=20
c=30
d=40
list1 <- list(a,b,c,d)

e <- c(1,2,3,4,5)
f <- c(6,7,8,9,10)
g <- c(11,12,13,14)
h <- c(15,16,17,18)
list2 <- list(e,f,g,h)

library(tidyverse)
#> Warning: package 'forcats' was built under R version 3.6.3

map(.x = list1,.f = ~map(list2,.f = function(y) .x > y))
#> [[1]]
#> [[1]][[1]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[1]][[2]]
#> [1]  TRUE  TRUE  TRUE  TRUE FALSE
#> 
#> [[1]][[3]]
#> [1] FALSE FALSE FALSE FALSE
#> 
#> [[1]][[4]]
#> [1] FALSE FALSE FALSE FALSE
#> 
#> 
#> [[2]]
#> [[2]][[1]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[2]][[2]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[2]][[3]]
#> [1] TRUE TRUE TRUE TRUE
#> 
#> [[2]][[4]]
#> [1] TRUE TRUE TRUE TRUE
#> 
#> 
#> [[3]]
#> [[3]][[1]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[3]][[2]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[3]][[3]]
#> [1] TRUE TRUE TRUE TRUE
#> 
#> [[3]][[4]]
#> [1] TRUE TRUE TRUE TRUE
#> 
#> 
#> [[4]]
#> [[4]][[1]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[4]][[2]]
#> [1] TRUE TRUE TRUE TRUE TRUE
#> 
#> [[4]][[3]]
#> [1] TRUE TRUE TRUE TRUE
#> 
#> [[4]][[4]]
#> [1] TRUE TRUE TRUE TRUE

reprex package (v0.3.0)

于 2020-03-31 创建