English · PDF 352
map_dbl(df, sd) #> a b c d #> 0.796 0.759 1.164 1.062
与使用 for 循环相比,重点在于要执行的操作(即 mean()、median()、sd()),而不是遍历每个元素并存储输出所需的簿记工作。如果我们使用管道,这一点会更加明显:
df %>% map_dbl(mean) #> a b c d #> 0.2026 -0.2068 0.1275 -0.0917 df %>% map_dbl(median) #> a b c d #> 0.237 -0.218 0.254 -0.133 df %>% map_dbl(sd) #> a b c d #> 0.796 0.759 1.164 1.062
map_*() 和 col_summary() 之间有一些区别:
map_dbl(df, mean, trim = 0.5) #> a b c d #> 0.237 -0.218 0.254 -0.133
z <- list(x = 1:3, y = 4:5) map_int(z, length) #> x y #> 3 2
你可以在 .f 中使用一些快捷方式,以节省一些输入。假设你想对数据集中的每个组拟合一个线性模型。下面的简单示例将 mtcars 数据集拆分为三部分(每个气缸值对应一部分),并对每部分拟合相同的线性模型: