【发布时间】:2020-09-21 21:31:32
【问题描述】:
想用dplyr的自定义函数,下面的代码就不用重复几次了。
样本数据:
print(df)
Tran_Date Account Tran_Type Fee
1 2011-07-14 32-90-014846-00 <NA> 444.15
2 2011-09-01 32-90-014846-00 <NA> 117.79
3 2011-11-10 32-90-015611-00 <NA> 534.45
4 2012-01-12 90-015926-00 court costs 450.00
5 2012-02-09 90-015821-00 <NA> 640.25
6 2012-02-09 90-015128-00 <NA> 90.00
这里是自定义函数:
State <- function(x, y){
mutate(`Account` = str_remove_all(`Account`, "-"),
Account = case_when(
startsWith(`Account`, y) ~ str_c(str_c("WC", x), `Policy #`),
startsWith(`Account`, x) ~ str_c("WC", `Policy #`)
))
}
df %>% State(32, 90)
Error in State(., x = 32, y = 90) : unused argument (.)
如何解决此错误,以便我可以使用管道运算符进行此操作,而不必一遍又一遍地重新使用函数代码?
谢谢!
【问题讨论】:
-
你需要数据对象
-
%>% 运算符从左侧获取一个数据框并将其传递给右侧函数的第一个参数。 State() 不接受数据框,因此您需要使用数据框作为第一个参数重新定义 Stata()。