问题标签 [rlang]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在 dplyr 的函数中使用变量名
我想在dplyr
. 请参见下面的示例:
它工作得很好,但我想color
通过字符串来引用,如下所示:
我很乐意以任何方式做到这一点,并且非常乐意使用易于阅读的dplyr
语法。
r - 如何在带有 tidyr 和 ggplot2 的函数中使用 dplyr 的 enquo 和 quo_name
我正在尝试编写一个函数,它将即将发布的dplyr
开发版本中的 quosures 与tidyr::gather
and结合起来ggplot2
。到目前为止,它似乎适用于tidyr
,但我在绘图时遇到了麻烦。
以下功能似乎适用于tidyr's gather
:
但我不知道如何使情节发挥作用。我尝试使用!!gath
with ggplot2
,但没有奏效。
r - 如何在 dplyr 0.7 中参数化函数调用?
dplyr 0.7 的发布包括对 dplyr 编程的重大改革。我仔细阅读了这份文档,并试图了解它将如何影响我对 dplyr 的使用。
这是我在使用 dplyr 构建报告和聚合函数时使用的一个常见习语:
这里,grouping_vars
是一个字符串向量。
我喜欢这个习惯用法,因为我可以从其他地方传入字符串向量,比如文件或 Shiny 应用程序的反应式 UI,但它对于交互式工作也不是太糟糕。
但是,在使用 dplyr vignette 的新编程中,我看不到如何使用新的 dplyr 完成类似操作的示例。我只看到了传递字符串不再是正确方法的示例,而我必须使用 quosures。
我很高兴采用 quosures,但我究竟如何从字符串中得到 dplyr 在这里所期望的 quosures?期望整个 R 生态系统为 dplyr 提供 quosures 似乎是不可行的——很多时候我们会得到字符串并且它们必须被转换。
这是一个示例,显示您现在应该做什么,以及我的旧习语如何不起作用:
r - 在捕获环境时在操作后转发点中的表达式
我有一个fun_1
利用substitute()
其...
参数的函数,以及另一个具有实现模式fun_2
的签名的函数。我想在里面看到传递给. 这是我正在尝试做的一个说明。fun_2(...)
do.call(fun_1, dots)
fun_1()
fun_2()
...
fun_2()
我认为有足够的魔力rlang
来完成这项工作,但我无法弄清楚如何做。我可以修改fun_1
,只要
fun_1()
可以访问foo
和bar
- 该
do.call
模式在fun_2()
编辑:我也需要fun_2(list(foo, bar, NULL))
工作
r - 在 rlang 表达式的 quasiquotation 中使用预先存在的字符向量
有时,当使用dplyr
一个列名的字符向量时,该字符向量将用于对数据进行操作,例如:
在dplyr
0.5.0 及更早版本中,推荐的解决此问题的方法是使用verb_
下划线结构,如下所示:
verb_
现在不推荐使用这些函数,取而代之的是rlang
库引入的新的 tidy 评估框架 (dplyr.tidyverse.org/articles/programming.html)。
从dplyr
0.7.0 开始,以下作品无需任何特殊调整:
请注意,在 的开发版本中dplyr
,情况并非如此
动机
在闪亮的应用程序中选择列是一个很好的示例用例,这就是使用verb_
符号的方法
r - 使用 dplyr quos 引用 ... 中的单个变量
阅读使用 dplyr 编程的指南,我可以...
一次引用所有变量。但是我怎样才能单独使用它们呢?
这是一个计算两个变量的函数。它成功使用quos()
and !!!
:
现在我想要tidyr::spread
第二个变量,在这种情况下是am
列。当我添加到我的功能时:
我得到:
错误:无效的列规范
我应该如何仅引用cols <- quos(...)
列表的第二个变量?
r - 在 dplyr 0.6 中对多个以编程方式指定的变量进行分组
这是新的 dplyr,即将发布 Real Soon Now。
dplyr编程小插图给出了一个group_by
使用外部函数中指定的分组变量进行调用的示例:
这在提供单个分组变量时有效。但是,它因多个变量而失败。
简化示例:
在 rlang 框架内,我该如何解决这个问题?
理想情况下,我希望f
' 的签名保持不变,即我将分组变量指定为单个向量,而不是通过...
参数。
r - 如何检测rlang中的空quosure?
这些都不起作用:
r - 在 R 中绘图后自动调用 dev.off
我正在寻找一种在有人调用 plot() 或 ggplot() 时自动调用 dev.off() 将绘图刷新到磁盘的方法。
这可能吗?RStudio 看起来会自动加载绘图,它是如何工作的?
r - 错误:rstudio 中软件包“rlang”的编译失败 - Debian jessie 8.0
我正在尝试在我的 Debian jessie 机器上安装 R(版本 3.1.1 64 位)中的“预测”包。
我已经安装了分析所需的其他 R 包。但是,当我尝试安装“预测”包时,它需要依赖项,即 rlang、tipple 和 ggplot2。从错误日志(如下所示)中可以看出,tipple 和 ggplot2 需要安装 rlang 才能安装它们。
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c sexp.c -o性交
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c splice.c -o拼接.o
在 splice.c:2:0 包含的文件中:
vector.h:在函数“namespace_rlang_sym”中:
vector.h:94:19: 错误: 'R_DoubleColonSymbol' 未声明(在此函数中首次使用)return(Rf_lang3(R_DoubleColonSymbol, rlang_sym, sym)); ^ vector.h:94:19: 注意:每个未声明的标识符对于它出现的每个函数只报告一次
/usr/lib/R/etc/Makeconf:128:目标“splice.o”的配方失败
制作:*** [splice.o] 错误 1
错误:包“rlang”的编译失败</p>
- 删除 '/usr/local/lib/R/site-library/rlang'</li>
install.packages 中的警告:安装包“rlang”的退出状态非零错误:依赖项“rlang”不适用于包“tibble”*删除“/usr/local/lib/R/site-library/tibble” </p>
install.packages 中的警告:安装包“tibble”的退出状态非零错误:依赖项“tibble”不适用于包“ggplot2”*删除“/usr/local/lib/R/site-library/ggplot2” </p>
install.packages 中的警告:安装包“ggplot2”的退出状态非零错误:依赖项“ggplot2”不适用于包“预测”*删除“/usr/local/lib/R/site-library/forecast” </p>
install.packages 中的警告:安装包“预测”的退出状态非零
rlang 安装失败并显示上述错误消息。任何专家的帮助将不胜感激。