问题标签 [tidyeval]
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 - 编写一个 tidyeval 函数来重命名 dplyr 中的因子级别
我正在尝试编写一个 tidyeval 函数,该函数采用数字列,将高于某个值limit
的值替换为 的值limit
,将该列转换为一个因子,然后将因子级别替换为limit
一个名为“limit+”的级别。
例如,我试图用 3 替换 sepal.width 中大于 3 的任何值,然后将该因子级别重命名为3+
.
作为一个例子,这就是我试图使它与 iris 数据集一起工作的方式。不过,fct_recode() 函数没有正确重命名因子级别。
r - 根据列名创建多个图表
这是我在 stackoverlow 上的第一个问题,如果我没有遵循正确的问题协议,请纠正我。
我正在尝试为在三个时间点(时间 1、时间 2、时间 3)上收集的数据创建一些图表,这些时间点等于列名开头的 X1...、X2... 和 X3... . 这些图表也由数据框中的 $Group 列分隔。
我创建图表没有问题,我只有很多变量(~170),我想比较时间 1 与时间 2、时间 2 与时间 3 等,所以我正在尝试使用快捷方式来运行这种代码而不必单独输入每一个。
如上所述,我创建了变量名称,例如 X1...X2...,它表示记录变量的时间,即 X1BCSTCAT = time 1; X2BCSTCAT = 时间 2;X3BCSTCAT = 时间 3。这是我的数据的一个小样本:
以下是一些工作代码,用于使用 ggplot 针对一个变量的时间 1 与时间 2 数据创建一个图表:
因此,我真的在尝试创建某种快捷方式,其中 R 将循环并匹配变量名称 X1... 与 X2... 等等并创建图形。我认为必须有某种方法可以根据匹配的列号进行绘图,例如 df[,7] vs df[,10] 并迭代此过程或通过实际匹配名称进行绘图(其中变量名称的唯一区别是数字表示时间)。
我之前曾循环使用该lapply
函数创建单独的图表,但不知道从哪里开始尝试做这个。
r - dplyr / tidyevaluation:如何将 mutate 中的表达式作为字符串传递?
我想编写一个有两个输入的函数:一个新变量的名称和一个数学表达式。两个参数都以字符串形式出现。
此函数应采用 data.frame 并添加指定的新变量,该变量应为给定数学表达式的结果。
这是我尝试过的最小工作示例:
这会产生以下错误:
Error in mutate_impl(.data, dots) : Binding not found: A + B.
当我将 mutate 行包装在函数中时expr()
,我得到
似乎周围的蜱虫A + B
不应该在那里,但我不知道如何摆脱它们。至少,enquo()
并quo_name()
没有帮助。
r - aes_string() 内的缩放值
我想通过在 ggplot 中乘以一个数字(比如 10)来缩放我的 y-var。问题是这是在一个闪亮的应用程序中,变量必须作为字符串传递,即input$variable
.
如何以aes_string()
与我相同的方式乘以其中一个变量aes()
?这是失败时的示例:
“mpg”* 10 中的错误:二进制运算符的非数字参数
r - 使用 dplyr/ggplot 函数在 for 循环中调用许多变量
有时在执行探索性分析或生成报告时,我们希望绘制许多变量的单变量分布。经过一些整洁的技巧后,我可以在情节上做到这一点,但是有有序的因素,我想让它们在情节上保持有序。
因此,为了以更有效的方式完成它,我构建了一个简单的dplyr
/ggplot
基于函数。我在下面使用vcd
包的关节炎数据集制作了这个例子。
我可以用很短的方式绘制一个格式化的图表,这很酷,但只有一个变量。
我试图用 for 循环调用多个变量,但它不起作用。代码运行,但没有任何反应。
我对此进行了搜索,但对我来说仍然不清楚。有人知道我做错了什么或如何使它工作吗?
提前致谢。
r - 让 quosures 在地图调用中工作
我正在努力让 quosures 在map
通话中工作。
一些玩具数据:
我可以让这个函数工作,在enquo
我将它传递给之前我是一个变量group_by
:
调用这个函数
让我得到预期的结果。但是如果我想map
超过多个分组变量,(即g1
& g2
)
返回错误
如何quosures
在map
通话中进行设置?
r - for循环中的多个图忽略par
我正在尝试生成 10 对图,每页图有几对,并且正在使用for
循环来构造这些对。但是,这些图作为单独的图而不是页面发送到设备。
下面的 MWE 对基本图形和ggplot
版本具有相同的结构,但基本图形可以工作,ggplot
也不能工作。我需要做什么才能在第二个版本中正确分页?
r - ggplot2:如果未提供美学,则默认填充
我有一个使用 ggplot 的函数。我想将它传递给一个变量以用于fill
美学,或者当我不传递任何东西时使用不同的颜色。
if/else 语句为下面的函数执行此操作,但我的实际函数有点复杂,并且有一些 if/else 分支,所以我想将它们最小化。
是否可以为 to 设置默认填充geom_bar()
,"blue"
但如果我传入fill
美学,是否会被覆盖?
或者,我正在考虑根据传递给我的函数的参数创建一个要传递给的参数列表geom_bar()
,并将其拼接到 using 中!!!
。不过,我还没有真正了解 tidyeval/quasiquotation,所以我不太清楚它是如何工作的。
不过,我也对其他解决方案持开放态度。
r - 在自定义函数中将列名传递给 group_by 和 ggplot2
我的数据框有多个分类列,我想将每一列与固定列进行比较并生成条形图facet_grid()
。为此,我想编写一个函数。
这里Target列是固定的 group_by()
和facet_grid()
函数。以类似的方式,我想与多列进行比较。
为此我写了一个函数
上述功能group_by()
在收到错误之前正在工作。