问题标签 [non-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 - 如果尚未引用,则有条件地引用/替换表达式
我正在寻找一种方法来引用传递给函数的参数(考虑、 或 的substitute()
行为)ggplot2
,aes()
但有条件地这样做 - 仅当尚未用.subset()
data.table
[
quote()
这是因为我想轻松链接函数,这些函数不会假设参数是否先前被引用 - 而是根据需要替换它。
几个问题:
- 为什么这是个坏主意?
- 是否已经有任何内置方法可以实现这一目标?
- 这
tryCatch
部分是因为如果Promise 评估为未定义的变量,is.language
则会引发错误。x
还有其他/更好的解决方案吗?
我想出了什么:
这个怎么运作:
r - 在 R 中使用 NSE 制造信息性的 `stopifnot()` 错误
我想犯信息stopifnot()
性错误。
我已阅读: http ://r-pkgs.had.co.nz/tests.html (最后关于使用 NSE 打印出示例的信息性测试错误的部分似乎相关)和 http://adv -r.had.co.nz/Computing-on-the-language.html 但我无法用简洁的代码打印出信息性错误:
输出给出了这个(信息量不大)
错误:eval(bquote(.(x) %in% e[[.(z)]])) 不是 TRUE
我希望错误信息更丰富,这样说:
错误:5 %in% e[["label"]] 不是 TRUE
我怎样才能让它工作?或者实现我想要的最佳方法是什么
我知道我可以写一个 if condition not true 然后打印我自己的错误作为替代,但是额外的代码很麻烦。我想了解如何让 NSE 让它发挥作用。
编辑:我采用这种方法的动机来自阅读哈德利的评论(在http://r-pkgs.had.co.nz/tests.html):
但是,如果期望失败,这不会提供非常丰富的输出:
相反,您可以使用一些非标准评估来产生更多信息。关键是使用 bquote() 和 eval()。在下面的 bquote() 调用中,注意使用 .(x) - () 的内容将被插入到调用中。
r - 怎么获得 。在 dplyr::do 中正确解释的公式中?
我有以下数据框:
我想对每列与其他列进行多重回归,并从每个模型中提取 R 平方。这意味着我可以运行以下代码:
并记下 R 平方。
我想自动执行此任务并有两列数据框,其中第一列是因变量,第二列是 R 平方。
这是我尝试过的:
我已经对我被卡住的部分发表了评论。我收到以下错误:
r - 获取引用列表的名称而不进行评估
我有一个引用列表
(我最终eval
在j
a 的一部分data.table
)
我想要的是提取该names
列表而不必评估表达式,因为在正确的环境之外评估表达式会产生错误。
r - 在 dplyr v.0.7 中使用 dplyr::arrange 进行编程
我正在尝试了解有关dplyr
编程和非标准评估的新实现。所以verb_函数被enquo
参数替换,然后应用!!
在常规动词函数中。从select
旧到新的工作正常,以下函数给出了类似的结果:
但是,当我尝试使用arrange
新的编程风格时,我会得到一个错误:
32 显然是 的行数mtcars
, 的内部函数dplyr
显然需要这个长度的向量。我的问题是为什么新的编程风格不适用arrange
以及如何以新的风格进行翻译。
r - r dplyr 非标准评估 - 在函数中排序条形图
我已阅读http://dplyr.tidyverse.org/articles/programming.html关于 dplyr 中的非标准评估,但仍然无法正常工作。
plot_column <- “columnA”
当 mutate 语句被禁用时工作正常。但是,当启用它以便按高度对条进行排序时,只会返回一个条。
如何将上面的语句转换为函数 / 以使用变量但仍绘制按大小排序的多个条形图。
一个示例数据集可以是:
编辑
一个样品:
将输出一个有序的条形图。如何将其包装到可以替换列并获得多个条形的函数中?
r - 如何在 dplyr 中运行 nlxb 和 wrapnls?
我正在尝试使用and (并最终)wrapnls
并行使用许多非线性拟合,但是我从以下位置得到解析评估错误:dplyr
broom
mclapply
nlxb
do
我同时使用和方法得到了这个错误lapply
。
有没有办法解决?
r - dplyr 编程:过滤器的意外行为
我正在尝试以编程方式使用 dplyr:带引号变量的过滤器行为是不可理解的。
经过几次尝试分析真实数据后,我创建了以下虚拟数据。
怎么了?提前感谢您的任何想法!
r - 将 `cbind()` 作为函数参数传递
假设我有一个不错的小数据框
我想要aggregate
其中的一部分:
我如何使它成为程序化的?我想通过:
- 要聚合的变量列表
cbind(x,z)
- 分组变量
a
(我将在程序的其他几个部分中使用它,所以传递整个东西cbind(x,z)~a
没有帮助) - 事情发生的环境
我的出发点是
它工作到一半:
所以我有点能够建立我需要的公式的字符表示,但将它放入aggregate()
失败。
r - R,data.table,非标准评估,错误的输出名称?
首先是我所看到的一个快速示例,然后是一些关于我为什么要做我正在做的事情的背景。
注意两个问题,我最关心的是第二个(错误的列名)。
我特别喜欢做的只是传递一个在data.table []内部评估的字符串,但我无法让它工作,只有i,j等分别
我为什么要这样做,好吧,简化版本是我正在编写一个执行此评估的函数。
更长的答案是我想遍历文件、聚合、rbind,然后再次聚合。但是,聚合数据的完整列表太大而无法放入内存。因此,我正在做一些循环,rbinding,聚合,更多循环,rbinding,聚合,然后聚合聚合,然后循环......我有一个函数允许我编写一个函数来执行此操作以灵活的方式,无需每次都重写循环。我已经这样做了很多次,并且处理各种循环级别的认知负担比它真正应该的要高。所以我希望这样的功能会很有用。
该功能如下。