有效的代码:
scale_this <- function(x){
(x - mean(x, na.rm=TRUE)) / sd(x, na.rm=TRUE)
}
get_the_boxes <- function(df,y,val1,provider_id){
temp <- df %>%
group_by_("MPIN") %>%
# mutate(y = scale_this(y),PAID_DATE_GRP = scale_this(PAID_DATE_GRP))
mutate(y = scale_this(mbr_cnt_log))
return(temp)
}
编辑: 想要添加我调用函数的方式:
my_data <- get_the_boxes(new2,"mbr_cnt_log",1,"mpin")
但是,我想通过参数“y”传递列名“mbr_cnt_log”。我已经看到类似问题的答案(this是一个很好的例子),但它们对我来说失败了(用户错误,毫无疑问)。
只显示带有更改的行,这是我尝试的内容并返回错误:
变化:
mutate(y = scale_this(deparse(substitute(y))))
错误:
Error in mutate_impl(.data, dots) :
Evaluation error: non-numeric argument to binary operator.
变化:
mutate(y = scale_this(df[[y]]))
错误:
Error in mutate_impl(.data, dots) :
Column `y` must be length 24 (the group size) or one, not 0
变化:
mutate(y = scale_this(df[,y]))
错误:
Error in mutate_impl(.data, dots) :
Evaluation error: Column `"mbr_cnt_log"` not found.
答案 0 :(得分:2)
使用最新版本的| UIkit.notification("booked");
= "\n"
| $("#total").html("
= escape_javascript(render "total")
|");
= "\n"
| $("#total_#{@id}").html("
= escape_javascript(render "total", order:@order)
|");
,您可以使用dplyr
和bang-bang enquo
运算符来捕获和扩展符号到dplyr表达式
!!
答案 1 :(得分:0)
这就是我的工作:
get_the_boxes <- function(df,y,val1,provider_id){
y<-enquo(y)
temp <- df %>%
group_by_("MPIN") %>%
# mutate(y = scale_this(y),PAID_DATE_GRP = scale_this(PAID_DATE_GRP))
mutate(y = scale_this(!!y))
return(temp)
}
my_data <- get_the_boxes(new2,mbr_cnt_log,1,"mpin")
这基本上是MrFlick写的,但有点不同。我找到了this来帮忙。