在行走函数的公式中对数据框使用过滤函数

Using filter function on dataframe in formula of walk function

我正在尝试为 mpg 中的每个 drv 类型打印 mpg 数据帧的数据样本('f','r', '4')。我尝试使用 walk 函数按以下方式进行操作:

walk(unique(mpg$drv),~print(mpg %>% filter(drv == .) %>% head()))

但是使用此方法的每种驱动器类型的结果都是空标题。

以下方法非常有效,但我想了解前一个方法有什么问题。

walk(drives,~print(mpg[mpg$drv == .,] %>% head()))

当您使用管道时 . 指的是来自管道 LHS(左侧)的对象。在这种情况下,它是数据帧 mpg,您需要的是 drvfilter 的当前值。可以用.x引用

library(dplyr)
library(purrr)

walk(unique(mpg$drv),~print(mpg %>% filter(drv == .x) %>% head()))

它适用于第二种情况,因为在使用 ..

之前您没有在那里使用管道