问题标签 [standard-evaluation]

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 回答
2854 浏览

r - 如何在函数中将字符串传递给 dplyr 过滤器?

我正在寻找一种方法将字符串作为输入传递给filter_我自己的函数中 dplyr 包中的函数。我已按如下方式设置数据框:

我正在寻找一种方法来编写一个函数,在该函数中我可以传递“apple”或“banana”来过滤数据框。

我努力了:

然后传递值:

这将返回一个错误:

我尝试了其他几种方法都没有成功,希望有人能提供帮助。

编辑:

我已经意识到我不需要为此操作使用 filter_ ,因为我没有选择要过滤的列,并且可以将参数传递给不带引号的过滤器。但是,对于您遇到的情况,问题仍然存在:

并且需要决定您需要过滤的列(X2 或 X3)。

0 投票
1 回答
2971 浏览

r - 条件变异的 SE 问题

我正在尝试用 mutate 做一个简单的条件。

代码应基于来自同一数据帧的两个变量创建一个名为“性别”的新变量。

我收到以下错误,我不明白。我想这与SE有关。但是我仍然对R不太熟悉。

mutate_impl(.data, dots) 中的错误:
缺少参数“.data”,没有默认值

如果我使用单个 mutate 语句运行代码,我不会遇到任何问题。

0 投票
1 回答
277 浏览

r - R dplyr 在条件过滤器中解析变量

我正在尝试根据变量值进行过滤,并尝试了 filter_、点和引号的多种组合,但均无济于事。

例如,我有一个

和一个数据框嘘

我想过滤一个名为 boo 的数据框,它可能看起来像迭代

我怀疑我会听到关于不使用 for 循环和 R 的消息,而是使用group_by(run),但我将这些数据发送到igraph并且需要进一步将数据集子集化为边缘和权重,从而丢失分组变量,如

我将创建一个网络图并找到每次运行的密度和中心性值。

如何让i条件过滤器中的 解析为正确的索引?

0 投票
0 回答
39 浏览

r - dplyr mutate 使用标准评估

我想在 dplyr mutate 短语中引用一个对象,该对象在我的数据框中包含变量名称。在我的情况下如何使用标准评估:

这是一些虚拟数据:

这是我希望能够更改的变量:

如果直接输入因变量,它对我有用:

但是,如何使用标准评估,以便可以引用对象dependent_variable?我尝试了以下方法:

但是两种解决方案都没有提供与第一种方法相同的结果:完全相同(data_lead1.df$variable_lead,data_lead2.df$variable_lead) false 相同(data_lead1.df$variable_lead,data_lead3.df$variable_lead) false

有人可以帮忙吗?

谢谢!!

0 投票
1 回答
249 浏览

r - tidyr::complete 的标准评估 - 由所有非数字列完成的函数

我想创建一个函数,将 tidyr::complete 应用于 R data.frame 的所有非数字列。值零应该插入到新的值行中。我知道这需要标准的评估解决方案,但到目前为止我还没有成功。

到目前为止,这是我所拥有的:

知道如何进行这项工作吗?

0 投票
1 回答
170 浏览

apache-spark - sparklyr 和基于标准评估 (SE) 的函数

我正在尝试编写一个函数来执行并sdf_pivot()​​创建一个 Spark DataFrame,其列名包含原始变量或列的名称。

这是var1不编写函数的预期结果:

在我的一个功能版本下面,当然不起作用,我也尝试过quoteand deparse,但我都坚持使用mutate_and sdf_pivot

0 投票
2 回答
1043 浏览

r - 使用具有 mutate 函数的多个字符串的向量进行 Dplyr 标准评估

我正在尝试为使用包的mutate()调用提供一个包含多个列名的向量。dplyr下面的可重现示例:

我能够弄清楚如何使用“一个变量”版本,但不知道如何将其扩展到多个变量?

如何扩展上述方法以便可以使用two_names向量?Usingas.name只需要一个对象,所以它不起作用。

这里的问题类似:将变量名向量传递给 dplyr 中的arrange()。该解决方案“有效”,因为我可以使用以下代码:

c(jack, jill)但是,如果我必须直接输入而不是使用two_names变量,它就达不到目的。是否有一些类似的程序可以two_names直接使用?这个答案How to pass a named vector to dplyr::select using quosures? 使用rlang::syms但尽管这适用于选择变量(即stackdf %>% select(!!! rlang::syms(two_names))它似乎不适用于在变异时提供参数(即stackdf %>% rowwise %>% mutate(test = anyNA(!!! rlang::syms(two_names)))。这个答案是相似的但不起作用:如何使用 dplyr 评估具有非标准评估的构造字符串?

0 投票
1 回答
330 浏览

r - R中的标准评估和非标准评估

我对 dplyr 函数的参数感到困惑,对标准评估 (SE) 或非标准评估 (NSE) 不太清楚。我只想将一个变量传递给 dplyr::arrange() 但它失败了。但是,传递给 dplyr::select() 有效。

我使用 SE 版本搜索了一个解决方案,它可以工作:

为什么 dplyr::select() 与 NSE 中的 dplyr::arrange() 不同?

如何在全局环境中修复以下错误?

谢谢!

0 投票
1 回答
82 浏览

r - 在 rlang 的lazyeval 调用中使用二元运算符

假设我想使用dplyr标准评估为列的每个值加 1。

我可以 :

但是,如果我想+用作二元运算符而不是函数怎么办?我不知道如何+在 quosure 中用符号编写。在我的大多数尝试中,我在尝试将非数字参数(例如符号)与二元运算符一起使用时遇到错误+

使用不推荐使用的,mutate_您可以使用lazyeval::interp它让您轻松地做到这一点:

任何帮助,将不胜感激。谢谢。

0 投票
2 回答
207 浏览

r - Dplyr 多重滞后整洁评估?

我试图在 dplyr 中使用尽可能少的代码来制造多个滞后,同时坚持 tidy eval。以下标准评估 (SE) 代码有效:

但是,您会注意到最后一行没有使用 tidy eval,而是使用了 SE。关于 funs_ 命令的包信息说它是多余的,因为 eval 整洁。因此,我想知道是否可以通过 tidy eval 来做到这一点?任何帮助表示赞赏,我是评估类型的新手。