我试图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()
andmean()
计算。
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
我错过了什么?