问题标签 [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.
r - 如何在函数中将字符串传递给 dplyr 过滤器?
我正在寻找一种方法将字符串作为输入传递给filter_
我自己的函数中 dplyr 包中的函数。我已按如下方式设置数据框:
我正在寻找一种方法来编写一个函数,在该函数中我可以传递“apple”或“banana”来过滤数据框。
我努力了:
然后传递值:
这将返回一个错误:
我尝试了其他几种方法都没有成功,希望有人能提供帮助。
编辑:
我已经意识到我不需要为此操作使用 filter_ ,因为我没有选择要过滤的列,并且可以将参数传递给不带引号的过滤器。但是,对于您遇到的情况,问题仍然存在:
并且需要决定您需要过滤的列(X2 或 X3)。
r - 条件变异的 SE 问题
我正在尝试用 mutate 做一个简单的条件。
代码应基于来自同一数据帧的两个变量创建一个名为“性别”的新变量。
我收到以下错误,我不明白。我想这与SE有关。但是我仍然对R不太熟悉。
mutate_impl(.data, dots) 中的错误:
缺少参数“.data”,没有默认值
如果我使用单个 mutate 语句运行代码,我不会遇到任何问题。
r - R dplyr 在条件过滤器中解析变量
我正在尝试根据变量值进行过滤,并尝试了 filter_、点和引号的多种组合,但均无济于事。
例如,我有一个
和一个数据框嘘
我想过滤一个名为 boo 的数据框,它可能看起来像迭代
我怀疑我会听到关于不使用 for 循环和 R 的消息,而是使用group_by(run)
,但我将这些数据发送到igraph
并且需要进一步将数据集子集化为边缘和权重,从而丢失分组变量,如
我将创建一个网络图并找到每次运行的密度和中心性值。
如何让i
条件过滤器中的 解析为正确的索引?
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
有人可以帮忙吗?
谢谢!!
r - tidyr::complete 的标准评估 - 由所有非数字列完成的函数
我想创建一个函数,将 tidyr::complete 应用于 R data.frame 的所有非数字列。值零应该插入到新的值行中。我知道这需要标准的评估解决方案,但到目前为止我还没有成功。
到目前为止,这是我所拥有的:
知道如何进行这项工作吗?
apache-spark - sparklyr 和基于标准评估 (SE) 的函数
我正在尝试编写一个函数来执行并sdf_pivot()
创建一个 Spark DataFrame,其列名包含原始变量或列的名称。
这是var1
不编写函数的预期结果:
在我的一个功能版本下面,当然不起作用,我也尝试过quote
and deparse
,但我都坚持使用mutate_
and sdf_pivot
。
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 评估具有非标准评估的构造字符串?
r - R中的标准评估和非标准评估
我对 dplyr 函数的参数感到困惑,对标准评估 (SE) 或非标准评估 (NSE) 不太清楚。我只想将一个变量传递给 dplyr::arrange() 但它失败了。但是,传递给 dplyr::select() 有效。
我使用 SE 版本搜索了一个解决方案,它可以工作:
为什么 dplyr::select() 与 NSE 中的 dplyr::arrange() 不同?
如何在全局环境中修复以下错误?
谢谢!
r - 在 rlang 的lazyeval 调用中使用二元运算符
假设我想使用dplyr
标准评估为列的每个值加 1。
我可以 :
但是,如果我想+
用作二元运算符而不是函数怎么办?我不知道如何+
在 quosure 中用符号编写。在我的大多数尝试中,我在尝试将非数字参数(例如符号)与二元运算符一起使用时遇到错误+
。
使用不推荐使用的,mutate_
您可以使用lazyeval::interp
它让您轻松地做到这一点:
任何帮助,将不胜感激。谢谢。
r - Dplyr 多重滞后整洁评估?
我试图在 dplyr 中使用尽可能少的代码来制造多个滞后,同时坚持 tidy eval。以下标准评估 (SE) 代码有效:
但是,您会注意到最后一行没有使用 tidy eval,而是使用了 SE。关于 funs_ 命令的包信息说它是多余的,因为 eval 整洁。因此,我想知道是否可以通过 tidy eval 来做到这一点?任何帮助表示赞赏,我是评估类型的新手。