我正在尝试使用
我有一个向量列表
在
purrr
软件包中的pmap()
简化我的代码。我有一个向量列表
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
我错过了什么?
~
的存在。我应该知道...
的。 - Richard Herron