Я пытаюсь использовать pmap()
из пакета purrr
для упрощения моего кода.
У меня есть список векторов x
;все векторы имеют одинаковую длину.Я хочу найти среднее и дисперсию всех n-х элементов по всем векторам в списке.То есть мне нужно среднее значение и дисперсию всех первых элементов, всех вторых элементов и т. Д.
До tidyverse
я бы преобразовал x
в матрицу и использовал apply()
.
x <- list(1:10, 1:10, 1:10)
x_matrix <- do.call(cbind, x)
apply(x_matrix, 1, mean)
## [1] 1 2 3 4 5 6 7 8 9 10
apply(x_matrix, 1, var)
## [1] 0 0 0 0 0 0 0 0 0 0
pmap()
должно позволять это без преобразования матрицы.pmap_dbl()
может заменить приведенные выше вычисления apply()
и mean()
.
library(purrr)
pmap_dbl(x, mean)
## [1] 1 2 3 4 5 6 7 8 9 10
Однако я не могу заставить pmap_dbl()
и var()
и вычисления работать.Я получаю NA
за каждую дисперсию.
pmap_dbl(x, var)
## [1] NA NA NA NA NA NA NA NA NA NA
Чего мне не хватает?