udf 可以自动完成吗?与 tidyverse 一样:用户输入首字母并出现选择菜单
Is autocompletion possible for udf? As in tidyverse: user types in first letters and selection menu appears
查看此示例,其中 dplyr 执行自动完成:
我刚输入 my_
,出现一个 select 菜单,其中包括全局环境 中以 my_
开头的对象和 [= 中的 13=]my_fun`:
如您所见,这里只有来自全局环境的 my_fun
出现在列表中,但是缺少来自 df
的两个变量名!我们可以像第一个屏幕截图那样为用户定义的函数做自动完成列表吗?
代码。但请记住,如果您复制粘贴第一个字母 my_
,则此 selection 菜单不会出现 - 您必须实际输入 my_
,然后菜单才会出现。
df <- data.frame(my_var1= 1:5, my_var2= 6:10)
my_fun <- function(data, var){mean(data[ , var])}
df %>% mutate(my_)
my_fun(data= df, var= my_)
编辑:我希望它是“实时的”,所以菜单 selection 出现在第一个字母之后,即用户不需要 运行代码。
到目前为止我得到了什么:Here我们看到我们可以使用attach
进行自动完成。所以如果我们先使用attach(df)
,列表中就会出现df
的变量名。但是对于这个用户必须提前 run
代码,即它不是第一个屏幕截图中的“实时”。
请注意您如何将 magrittr 管道与 mutate
一起使用,而不是与 my_fun
一起使用。您将需要使用管道运算符来触发 data-variables 出现在自动完成菜单中:
自动完成中没有 data-variables:
data-variables 自动完成
查看此示例,其中 dplyr 执行自动完成:
我刚输入 my_
,出现一个 select 菜单,其中包括全局环境 中以 my_
开头的对象和 [= 中的 13=]my_fun`:
如您所见,这里只有来自全局环境的 my_fun
出现在列表中,但是缺少来自 df
的两个变量名!我们可以像第一个屏幕截图那样为用户定义的函数做自动完成列表吗?
代码。但请记住,如果您复制粘贴第一个字母 my_
,则此 selection 菜单不会出现 - 您必须实际输入 my_
,然后菜单才会出现。
df <- data.frame(my_var1= 1:5, my_var2= 6:10)
my_fun <- function(data, var){mean(data[ , var])}
df %>% mutate(my_)
my_fun(data= df, var= my_)
编辑:我希望它是“实时的”,所以菜单 selection 出现在第一个字母之后,即用户不需要 运行代码。
到目前为止我得到了什么:Here我们看到我们可以使用attach
进行自动完成。所以如果我们先使用attach(df)
,列表中就会出现df
的变量名。但是对于这个用户必须提前 run
代码,即它不是第一个屏幕截图中的“实时”。
请注意您如何将 magrittr 管道与 mutate
一起使用,而不是与 my_fun
一起使用。您将需要使用管道运算符来触发 data-variables 出现在自动完成菜单中: