问题标签 [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 - 使用公式 Bis 进行非标准评估
R 中的非标准评估。我想将公式发送到使用lm
.
我有一个带有一个响应的数据框:y 和许多预测变量。我将在函数中拟合模型。该函数将接收作为字符串的过滤条件和作为字符串的预测变量的名称。响应将作为名称输入。该函数将根据过滤条件进行过滤,然后使用作为字符串发送给它的预测变量来拟合模型。我无法让预测器字符串正常工作。
这非常接近使用带有公式的非标准评估。事实上,我说明了这个解决方案,这让我成为了其中的一部分。区别:我想发送一个带有我的预测器值的字符串,而不是将预测器发送到函数。
用例:最终我会把它放在一个闪亮的应用程序中,让用户选择预测器和响应以及过滤器。
这是有效的:
r - 如何使用 purrr 循环一个整洁的 eval 函数?
我有以下数据集(样本):
我有以下函数显示group_by()
操作的 ggplot:
当我手动输入列名时它工作正常,例如:
但是,我想在几个列上使用这个函数,我把它放在一个向量上:
使用地图并采取一些建议,我尝试使用:
但这给了我以下错误:
有谁知道我需要做什么才能让它工作?
r - Tidyeval 与函数中的列名列表
我正在尝试创建一个将列名列表传递给函数的dplyr
函数。如果列名列表以...
表格形式给出,我知道如何执行此操作,如tidyeval
文档中所述:
但是如果我想将列名作为函数的参数列出,上述解决方案将不起作用(当然):
如何让列表中的项目单独引用?
这个问题类似于Passing dataframe column names in a function inside another function但在评论中建议使用字符串,而在这里我想使用裸列名。
r - 使用引用以编程方式创建 S3 泛型
我想从一个函数在全局环境中创建一个 S3 泛型。我看了看R.methodsS3::setGenericS3.default
并想出了以下内容:
这适用于我想要的方式。但是,我一直在尝试使用引用来完成这项工作,但我被困住了:
tidyeval
因为这是我熟悉的,所以使用它,但我想看看它在基础 R 中是什么样子的。
我感兴趣的任何版本都可以在没有字符串操作的情况下工作create_generic
。
r - 如何使用 dplyr 评估具有非标准评估的构造字符串?
我已经阅读了几本关于编程的指南dplyr进行编程的指南,但我仍然对如何解决使用非标准评估 (NSE) 评估构造/连接字符串的问题感到困惑。我意识到有比使用 NSE 更好的方法来解决这个例子,但我想学习如何去做。
这是我想要的结果,但希望mutate()
构建变量:
这是我的第一次尝试,尝试使用字符串:
这是我的第二次尝试,尝试使用 quosures:
这是我的第三次尝试,尝试使用 quosures 和:=
运算符:
r - 示例中的问题:使用 dplyr 编程
参考:http ://dplyr.tidyverse.org/articles/programming.html
此代码工作正常:
但是,如果我们将这个函数包装在另一个函数中并进行调用,它就不起作用了。是因为名字只通过了一级吗?
总的来说,我觉得上面的例子是一个冒险的例子
r - 在 tidyeval 框架中转义overscoping
如果我想明确地超出范围,我可以.data
像这样使用代词
但是,相反的情况呢,即如果我想明确避免过度使用?在下面的示例中,我想添加一个包含值b
(通过函数调用提供,而不是b
数据中的)加 1 的新列,这显然不像现在所说的那样工作(因为范围过大)。
我还尝试在mutate()
调用之外创建新值,但是我仍然需要依赖new_val
不在数据中。
r - 以与 tidy 评估兼容的方式整理文本
我想以符合整洁评估的方式整理源代码。不幸的是,formatR
不保存!!
运算符。
来自Yihui 的 formatR 指南的第 7 节,
简而言之,tidy_source(text = code) 基本上是 deparse(parse(text = code))...
但是当我打电话时deparse(parse(text = code))
,文本无法使用。实际行为:
期望的结果是整齐的文本:
这里的解决方案可能会解决https://github.com/ropensci/drake/issues/200。
r - tidyr quasiquotation with lexical scoping
我意识到整洁的评估不使用词汇范围,但我希望准引用在rlang
我决定的环境中寻找符号。
当前行为:
相反,我希望最后一行返回"b"
。如果你发现一个版本eval()
在这里可以工作并且像evaluate::try_capture_stack()
.
仅供参考:我正在尝试解决这个问题。
r - 通过整洁的评估进行变异
使用mutate_()
我曾经提供一个新变量列表以及创建它们所需的逻辑。
现在我想过渡到使用整洁的评估。我正在了解新方法。
我怎样才能使这项工作?一般会推荐一个函数来解决这种情况吗?