问题标签 [quosure]

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.

0 投票
2 回答
316 浏览

r - 使用带公式的非标准评估

我正在创建一个使用非标准评估来跟踪列的含义的包。该包在函数之间传递一个数据框,这些函数执行不同的操作并执行相同的列集。非标准评估非常适合:

但是,我想要一个适用于公式的函数:

返回Error in !xcol : invalid argument type。我尝试了, 和的各种组合quo(),但基本问题是我不知道需要什么样的对象。enquo()!!lm

0 投票
4 回答
7275 浏览

r - 将列名作为字符串传递给 group_by 并汇总

从 dplyr 0.7 版开始,不推荐使用以下划线结尾的方法,例如 summarise_group_by_,因为我们应该使用 quosures。

见: https ://cran.r-project.org/web/packages/dplyr/vignettes/programming.html

我正在尝试使用 quo 和 !! 来实现以下示例

工作示例:

但是,在这种情况下,我需要将要分组和汇总的列指定为字符串。

我怎样才能得到与上面相同的例子?

0 投票
1 回答
1649 浏览

r - 将表达式传递给`mapply`的`MoreArgs`

我正在使用 进行一些编程dplyr,并且很好奇如何将表达式作为(特别是MoreArgs)参数传递给mapply

考虑一个简单的函数,它根据 some和 a对 aF进行子集化,然后根据其他一些列输出汇总统计量。data.frameidstime_rangex

我们可以制作一些可以应用我们的函数的示例数据F

我们可以成功地将我们的函数应用于我们的每个输入。

因此,如果我愿意,我可以编写一个简单的 for 循环来解决我的问题。但是,如果我们尝试应用语法糖并将所有内容包装在 中mapply,则会出现错误。

0 投票
1 回答
361 浏览

r - 比 sign and quose 产生错误更好

在函数中使用 dplyr 时遇到问题。在基于 quosure 进行过滤时,> 符号似乎会导致没有数据返回的问题。

例如:

这是该函数的精简版本:

预期输出:

而是返回一个空数据框。

如果我调整代码并命名结束日期而不是使用 quosure,它会起作用:

创建 startdate 和 enddate quosures 的代码是相同的,当我切换过滤器以使 startdate 具有 >= 符号时,再次出现空 df 问题。这是 dplyr 中的错误还是我做错了什么?

0 投票
1 回答
79 浏览

r - R - rlang - 处理延迟评估

尝试解决以下用例:
我有一个完整的数据集 ( mydf),我想dplyr::group_by根据另一组变量组合 ( mysplits) 的条目使用不同的变量集。问题是,我的mysplitsdata.frame 包含变量名称作为字符。

有一个dplyr::group_by_选项,但我希望使用类似于rlang功能或类似的工具来实现这一点。

我正在寻找类似的东西:

f()我的谜题中缺少的部分在哪里。

0 投票
2 回答
3242 浏览

r - 使用 dplyr 将列名作为参数传递给函数

我有一个如下的数据框:

我正在尝试使用 dplyr 包动词为每个 accountid 编写每月总金额的函数。

要获得如下结果:

我收到如下错误:- sum(col3) 中的错误:参数的“类型”(字符)无效。如何在汇总函数中将列名作为参数传递而不带引号?

0 投票
2 回答
563 浏览

r - 从字符串解析和评估quosures

有没有办法从字符串中解析和评估 quosure。我想实现与以下示例相同的输出:

但从

我试过的票价是:

0 投票
0 回答
54 浏览

r - 使用公式 Bis 进行非标准评估

R 中的非标准评估。我想将公式发送到使用lm.

我有一个带有一个响应的数据框:y 和许多预测变量。我将在函数中拟合模型。该函数将接收作为字符串的过滤条件和作为字符串的预测变量的名称。响应将作为名称输入。该函数将根据过滤条件进行过滤,然后使用作为字符串发送给它的预测变量来拟合模型。我无法让预测器字符串正常工作。

这非常接近使用带有公式的非标准评估。事实上,我说明了这个解决方案,这让我成为了其中的一部分。区别:我想发送一个带有我的预测器值的字符串,而不是将预测器发送到函数。

用例:最终我会把它放在一个闪亮的应用程序中,让用户选择预测器和响应以及过滤器。

这是有效的:

0 投票
1 回答
112 浏览

r - 函数输入为变量时的 R dplyr Quosure 逻辑

我正在尝试使用 quosure 使自定义 group_by 函数工作。当函数的输入是字段的名称时,它可以正常工作。但是,如果我想创建一个包含要插入函数的字段名称的变量,我会因为该字段被引用而陷入困境。任何人都知道如何解决这个问题。请看下面

0 投票
1 回答
80 浏览

r - 示例中的问题:使用 dplyr 编程

参考:http ://dplyr.tidyverse.org/articles/programming.html

此代码工作正常:

但是,如果我们将这个函数包装在另一个函数中并进行调用,它就不起作用了。是因为名字只通过了一级吗?

总的来说,我觉得上面的例子是一个冒险的例子