问题标签 [nse]

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 投票
1 回答
121 浏览

r - R 使函数对标准和非标准评估都具有鲁棒性

我有一个小功能可以搜索用户定义column的依赖于dplyr. 在下面的当前形式中,它接受非标准评估中的列参数 - 不带引号(例如scenario,而不是"scenario"标准评估)。

无论用户如何输入列名,即在标准或非标准评估中,是否有办法使该功能正常工作?

0 投票
3 回答
4178 浏览

r - 如何在 R 中的函数内部使用 dplyr/magrittr 的管道?

我正在尝试编写一个函数,该函数将数据框和函数名称作为参数。当我尝试使用标准 R 语法编写函数时,我可以使用@hadley 在http://adv-r.had.co.nz/Computing-on-the-language.htmleval中的建议获得良好的结果substitute

现在,当我尝试使用%>%运算符编写相同的函数时,它不起作用:

如何将管道运算符与evaland结合使用substitute?这对我来说似乎真的很棘手。

0 投票
1 回答
108 浏览

r - 使用 dplyr 的 do() 处理复杂表达式的 NSE

当变量引用为".$mpg".

读完这里之后,我认为使用 as.name 就可以了,因为我有一个字符串,它给出了一个变量名。

例如,这有效:

这不起作用:

但这确实:

这也是:

我希望能够在表单中指定变量,.$mpg以便当我没有为数据指定点的选项时可以将它与 do() 一起使用,如下例所示:

  • 这里选择了随机变量来演示 prop.test 函数是如何工作的,请不要将此解释为滥用测试。

最终,我想把它变成这样的函数:

我最初认为我必须做类似的事情: interp(~var, var = as.name(miles)wheremiles将被替换为.$mpg,但正如我在顶部提到的那样,这似乎不起作用。

0 投票
3 回答
1842 浏览

r - 使用传递给 dplyr::filter 的参数创建一个函数 解决 nse 的最佳方法是什么?

使用 dplyr 的动词时,非标准评估非常方便。但是在使用带有函数参数的动词时可能会出现问题。例如,假设我想创建一个函数,为我提供给定物种的行数。

示例不起作用

此函数无法按预期工作,因为species 它是在 iris 数据帧的上下文中解释的,而不是在函数参数的上下文中解释的:

3 实施实例

为了解决非标准评估,我通常在参数后面加上下划线:

它并不完全令人满意,因为它将函数参数的名称更改为不太用户友好的名称。或者它依赖于自动完成,我担心这不是编程的好习惯。为了保持一个好的参数名称,我可以这样做:

另一种解决基于此答案的非标准评估的方法。 在函数环境的上下文中interp()解释:species

考虑到上面的 3 个功能,实现此过滤器功能的首选 - 最强大 - 方法是什么?还有其他方法吗?

0 投票
1 回答
418 浏览

r - 如何在lazyeval中将'...'参数传递给interp()公式

我正在尝试进行一些参数化dplyr操作。表达问题根源的最简单的可重现示例是:

这就是我一个人走了多远

尝试使用“na.rm”参数

非常感谢您的帮助!

0 投票
2 回答
824 浏览

r - 非标准评估、lapply 和 ggplot

我正在尝试使用 ggplot2 以编程方式绘制分布。

我无法弄清楚如何在这里使用非标准评估(NSE)(即使在阅读了 Hadley 的 NSE 书籍章节等之后)。

考虑以下代码:

这段代码确实产生了许多密度图,每列一个,好的。但是,它不会打印正在绘制的变量的名称。而是打印占位符变量x(参见图)。

由上面的代码产生的图

我的目标是x用真实变量名替换引号,例如mpg.

0 投票
1 回答
146 浏览

r - 使用 mutate_ 应用按行归约?

我有一个包含很多列的数据框,包括四个代表子类别的列。

我想用一列替换所有这些“page_x”列,只显示最右边的非 NA 细节级别。有很多逐行的问题,但我找不到一个与 NSE 和 Reduce 一起工作的问题。

在上面的示例中,这将是:

我认为在每一行上使用 Reduce 是一个很好的例子。我有一个在单行上工作的版本,但我找不到将它应用于 mutate_ 的方法。

这不起作用(因为我猜“行”对象并没有真正通过这种方式):

0 投票
1 回答
75 浏览

r - 使用 magrittr 反向管道编写非标准评估语法

我正在寻找简化代码的简单方法。

例子

sqrt函数可以很容易地应用于下面的列子集。

问题

我有兴趣将其他转换应用于子集,而无需再次键入整个子集序列。

例如代码:

将返回错误:

与使用语法相同.。我的问题是:语法方面,我怎样才能获得与函数相同的效果,sqrt但将更长的函数应用于传递的子集?

0 投票
2 回答
1121 浏览

r - R函数来安装丢失的包

对于我的一个脚本,我想编写一个 R 函数来检查一个包是否已经安装:如果是这样,它应该使用 library() 将它导入命名空间,否则它应该安装并导入它。

我假设pkgname是一个字符串,并尝试编写如下内容:

如此简单,此功能不起作用。如果我尝试像ensure_library("dplyr")安装包 dplyr 一样运行它,但它会失败,因为它尝试导入pkgname而不是dplyr在命名空间中。

另外,如果我现在重新运行它,它将dplyr再次安装。

我意识到这可能是由于 R 非标准评估,我尝试了几种 eval/substitute/quote 的组合以使其工作,require但我无法成功。

有人可以帮助我了解发生了什么以及是否有一些简单的解决方法吗?

如果一个已经实现它的函数存在,我想知道,但我真正感兴趣的是理解为什么我的代码不能按预期工作。

0 投票
1 回答
116 浏览

r - 与 dplyr mutate 的评估顺序不一致

我在 mutate 调用中使用了 2 个函数。一个按预期产生每行结果,而另一个对所有行重复相同的值:

这会产生类似的东西:

d列变化,但是v是恒定的,并且它的值实际上并不对应于任何行中的X和值。Y

我怀疑这与 NSE 有关,但我不明白我是如何从小事中找到它的。

div是什么导致和的不同行为pv?我该如何解决pv