将参数传递给dplyr切片
我想使用slice在一个大的data.frame上获取最大值和位置(获取日期),我想对几个变量进行此操作。所以,我正在编写一个自定义函数来传递几个变量作为参数,但它不起作用将参数传递给dplyr切片,r,R,我想使用slice在一个大的data.frame上获取最大值和位置(获取日期),我想对几个变量进行此操作。所以,我正在编写一个自定义函数来传递几个变量作为参数,但它不起作用 mvar <- "WD" peak_max <- dataf%>%group_by(year=format(date,"%Y"))%>% dplyr::sli
mvar <- "WD"
peak_max <- dataf%>%group_by(year=format(date,"%Y"))%>%
dplyr::slice(which.max(!!mvar))
mvar%
dplyr::slice(哪个.max(!!mvar))
我使用了Summary,但在传递论点时也失败了:
peak_max <- dataf%>%group_by(year=format(date,"%Y"))%>%
dplyr::summarise(date=date[which.max(!!mvar)], wd=max(!!mvar))
peak_max%group_by(年份=格式(日期,“%Y”))%>%
dplyr::总结(日期=日期[which.max(!!mvar)],wd=最大(!!mvar))
我还尝试了mvar,看起来您使用的是一种更老的方法
Enquo()
和代码>不再使用
在没有数据的情况下,很难确定您想要实现什么,但是,如果您直接传递变量(就像在dplyr
管道中所做的那样,您可以在函数中包含它{{var}}
。如果您要传递变量的字符串名称,则需要使用.data[[var]]
:
库(tidyverse)
#直接传递变量
my_func_var%slice_max({{var})
}
虹膜%>%my_func_var(萼片长度)
#>萼片。长萼片。宽花瓣。长花瓣。宽种
#>1 7.9 3.8 6.4 2弗吉尼亚州
#将变量作为字符串传递
my_func_str%slice_max(.data[[var]])
}
我的变量%my\u func\u str(我的变量)
#>萼片。长萼片。宽花瓣。长花瓣。宽种
#>1 7.9 3.8 6.4 2弗吉尼亚州
由(v1.0.0)于2021年4月23日创建
(我使用了slice\u max()
,因为它感觉更自然,但是哪个.max()
似乎也起作用了)