paws-r / paws

Paws, a package for Amazon Web Services in R
https://www.paws-r-sdk.com
Other
315 stars 37 forks source link

Transpose list #785

Closed DyfanJones closed 4 months ago

DyfanJones commented 4 months ago
obj <- list(
  var1 = c(1, 2, 3),
  var2 = letters[1:3],
  var3 = list(),
  var4 = list()
)

# paws.common 0.7.2
.mapply(list, obj, NULL)
#> list()

# paws.common 0.7.3
paws.common:::transpose(obj)
#> [[1]]
#> [[1]]$var1
#> [1] 1
#> 
#> [[1]]$var2
#> [1] "a"
#> 
#> [[1]]$var3
#> NULL
#> 
#> [[1]]$var4
#> NULL
#> 
#> 
#> [[2]]
#> [[2]]$var1
#> [1] 2
#> 
#> [[2]]$var2
#> [1] "b"
#> 
#> [[2]]$var3
#> NULL
#> 
#> [[2]]$var4
#> NULL
#> 
#> 
#> [[3]]
#> [[3]]$var1
#> [1] 3
#> 
#> [[3]]$var2
#> [1] "c"
#> 
#> [[3]]$var3
#> NULL
#> 
#> [[3]]$var4
#> NULL

Created on 2024-05-15 with reprex v2.1.0

atime.list <- atime::atime(
  N = 2^seq(2,15),
  setup={
    obj = list(
      var1 = 1:N,
      var2 = sample(letters[1:10], size = N, replace = T),
      var3 = list(),
      var4 = list()
    )
  },
  times=10,
  paws.common = paws.common:::transpose(obj),
  purrr = purrr::list_transpose(obj, simplify = F)
)
atime.list |> plot()

image

Fixes: #783