library(sparsevctrs)
library(vctrs)
sparse_vector()
#> <sparse_vector[0]>
vec_ptype2.sparse_vector.sparse_vector <- function(x, y, ...) sparse_vector()
vec_ptype2.sparse_vector.double <- function(x, y, ...) double()
vec_ptype2.double.sparse_vector <- function(x, y, ...) double()
vec_ptype2.sparse_vector.integer <- function(x, y, ...) integer()
vec_ptype2.integer.sparse_vector <- function(x, y, ...) integer()
vec_ptype2(sparse_vector(), sparse_vector())
#> <sparse_vector[0]>
vec_cast.sparse_vector.double <- function(x, to, ...) {
new_sparse_vector(x, seq_along(x), length(x))
}
vec_cast.double.sparse_vector <- function(x, to, ...) {
res <- double(length(x))
res[sparsevctrs:::.positions(x)] <- sparsevctrs:::.values(x)
res
}
vec_cast.sparse_vector.sparse_vector <- function(x, to, ...) {
x
}
vec_cast(sparse_vector(1, 4, 6), double())
#> [1] 0 0 0 1 0 0
vec_cast(c(6, 4, 7 ,3), sparse_vector())
#> <sparse_vector[4]>
#> [1] 6 4 7 3
vec_c(sparse_vector(1, 4, 6), sparse_vector(1, 4, 6))
#> <sparse_vector[12]>
#> [1] 0 0 0 0 0 0 0 0 0 0 0 0
vec_proxy.sparse_vector <- function(x, ...) {
x
}
vec_restore.sparse_vector <- function(x, to, ...) {
x
}
sparse_vector(1, 4, 6)[1:3]
#> [1] 1 2 3
sparse_vector(1, 4, 6)[2:5]
#> [1] 2 3 4 5
Created
April 11, 2024 20:18
-
-
Save EmilHvitfeldt/854f86e0e8a754f8ccfb14e2790920a2 to your computer and use it in GitHub Desktop.
sparsevctrs hurdle
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment