我正试图允许用户输入cut_
的版本,并使用他们在mutate
函数下游指定的函数的版本。
可以发现以下功能的代码版本:
df2<- d3 %>%
mutate_if(is.numeric,funs(cut_interval(.,n=5)))
我想从此处开始,而不是在代码中明确包含cut_interval()
,而是允许用户输入名为“ slicer”的变量的值。如果他们输入的值是“ cut_interval”,那么我想使用mutate函数。如果他们输入“ cut_number”,那么我想改用该cut函数。
我对此不起作用的尝试是:
slicer <- "cut_number"
ifelse(slicer=="cut_number",
df2<- d3 %>%
mutate_if(is.numeric,funs(cut_number(.,n=5))),
df2<- d3 %>%
mutate_if(is.numeric,funs(cut_interval(.,n=5))))
和
df2<- d3 %>%
mutate_if(is.numeric,funs(paste0(slicer,"(.,n=5)")))
在此先感谢您的帮助!
注意:根据@akrun在以下注释中的建议,将其更改为if / else,以下代码将起作用:
if (slicer=="cut_number"){
df2<- d3 %>%
mutate_if(is.numeric,funs(cut_number(.,n=5)))} else {df2<- d3 %>%
mutate_if(is.numeric,funs(cut_interval(.,n=5)))}
在最初的目的上进行扩展,想象一下这样一种情况:我可能想让用户键入数百种各种功能作为slicer
的值,并希望应用该功能。有没有以这种方式扩展的方法?