在行走函数的公式中对数据框使用过滤函数
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
,您需要的是 drv
到 filter
的当前值。可以用.x
引用
library(dplyr)
library(purrr)
walk(unique(mpg$drv),~print(mpg %>% filter(drv == .x) %>% head()))
它适用于第二种情况,因为在使用 .
.
之前您没有在那里使用管道
我正在尝试为 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
,您需要的是 drv
到 filter
的当前值。可以用.x
引用
library(dplyr)
library(purrr)
walk(unique(mpg$drv),~print(mpg %>% filter(drv == .x) %>% head()))
它适用于第二种情况,因为在使用 .
.