问题标签 [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 投票
0 回答
174 浏览

r - 我是否正确/合理地使用 NSE 和 rlang?

我一直在阅读使用 dplyr 进行编程,并尝试将它描述的想法应用到我的工作中。我有一些有用的东西,但我不清楚我是否以“正确”的方式完成了它。我可以做一些更优雅或更简洁的事情吗?

我有一个tibblewhere 行是场景,列与在该场景中运行的测试相关。有两种类型的列,一种是存储在该场景中计算的测试统计量,另一种是存储该测试的自由度。

所以,这是我拥有的数据类型的一个小玩具示例:

我想计算将基于 itsstat和 its的每个测试的摘要df。我的示例是我想计算stat每个组的中位数,其中组由df. 不能保证分组在测试中是相同的,甚至不能保证组的数量是相同的。

所以,这就是我所做的:

这行得通。但是,有经验的rlang用户会这样做吗?我是 NSE 的新手,对rlang重复使用两个嵌套函数(UQ(sym(.)))有点惊讶。

我很高兴使用UQ而不是!!,只是因为我更喜欢传统的函数符号。

根据评论,我摆脱了namespace::function符号,现在我的函数看起来并不那么冗长:

0 投票
1 回答
96 浏览

r - 函数未以预期方式评估变量

我正在尝试编写一个 R 函数来生成频率表,这样我就可以标准化格式等,而无需重复输入。唯一的问题是我无法正确评估分组变量。

下面是一些代码来获取一个迷你数据集来重现问题:

结果是:

resolve_vars(new_groups, tbl_vars(.data)) 中的错误:要分组的未知变量:字段调用自:resolve_vars(new_groups, tbl_vars(.data))

我也试过:

哪个效果更好(因为它不会出错),但实际上仍然没有正确分组因素,输出:

它只是告诉我该列中的案例数量。有谁知道我要去哪里错了?

0 投票
2 回答
1001 浏览

r - group_by 通过使用整齐评估语义的字符向量

我曾经这样做,使用group_by_

但现在group_by_已弃用。我不知道如何使用整洁的评估框架来做到这一点。

0 投票
3 回答
2445 浏览

r - 在编程中使用 dplyr mutate()

我正在尝试使用 mutate 将列名分配给变量。

当我跑

它不起作用。我知道 mutate_()可以提供帮助,但我正在努力将它与ifelse.

任何帮助,将不胜感激。

0 投票
2 回答
394 浏览

r - 在 dplyr v.0.7 中使用 dplyr::arrange 进行编程

我正在尝试了解有关dplyr编程和非标准评估的新实现。所以verb_函数被enquo参数替换,然后应用!!在常规动词函数中。从select旧到新的工作正常,以下函数给出了类似的结果:

但是,当我尝试使用arrange新的编程风格时,我会得到一个错误:

32 显然是 的行数mtcars, 的内部函数dplyr显然需要这个长度的向量。我的问题是为什么新的编程风格不适用arrange以及如何以新的风格进行翻译。

0 投票
1 回答
124 浏览

r - 在 dplyr 中使用类 select 机制来选择不同调用的变量

期望的结果

使用简单的语法,我过滤vsam留下cyl值的列。

所需的语法

我想颠倒上面的语法,并在除之外的所有值cyl上选择不同的观察值,对应于下面的示例:

那自然是行不通的:

0 投票
3 回答
104 浏览

r - 使用 NSE 语法计算多列的总排名

我的目标是编写一个take_by_rank函数

  • 可以对数据框中任意选择的数字列进行操作;
  • 使用非标准评估,如base::subsetdplyr动词;
  • 自然理解减号,所以这-foo意味着“最大的值得foo到最低的等级”;
  • n按总排名返回顶部或底部行,这是为每个选定变量计算的排名总和。

我对学习最新的dplyr 方法和寻找替代方法都很感兴趣,即对包选择没有限制(纯basedata.table可能?)。

我目前的解决方案是

这似乎没问题,但也许我错过了更直接的东西。如果有办法替换 for 循环,那也很好。

使用示例(供参考)

0 投票
2 回答
416 浏览

r - 在 ggplot2 调用 aes 的函数中混合点和命名参数

我正在尝试围绕它创建一个包装器,ggplot它允许我添加一些美学,如 x 变量或颜色,但总是 prefills yyminymax不必使用带引号的变量名。

由于 ggplot2 不能使用 tidy 评估,我必须为此使用 NSE,但我被卡住了,我可以在这里这里找到的信息并检查一些功能让我尝试unlist(...)使用match.call(). 但他们只会抛出不同的错误。

在下面的函数中,我基本上希望能够调用ci_plot()或者例如ci_plot(color = cyl)

0 投票
0 回答
203 浏览

r - R:解析(+eval)字符串用作子集/ [的参数。NSE案例?

在我的应用程序中,用户可以提供“子集”表达式(由 mix: 变量、存储在变量中的名称 - videargs_inputsubset_args_input变量组成)作为subset/[函数的参数:

我的期望是得到与执行相同的结果:

通过执行这个:

do.call("[", eval(parse(text=args_input)))

另外,我尝试过类似的东西subset

  1. 这两种方法都有效,但需要eval+ parse,如果允许用户传递任何字符串,这是不安全的。eval问题 - 如果没有+parse组合,是否可以达到相同的结果?
  2. 您(R 用户:)能否请看一下上面的片段 - 是否有任何不必要的东西/违反 R 哲学的东西?
0 投票
2 回答
1217 浏览

r - R quo_name 相当于 quos

嗨,在使用 dplyr 进行编程之后,我注意到可以使用 quo_name 添加名称。我想知道如何为多个列执行此操作,例如。就像一个 quos_name 之类的。例如:

变成

IE。为 ... 中指定的所有列添加均值和总和列,当然这仅作为示例,并且 quos_names 不存在。如果有办法做到这一点,那将非常有帮助。

例如,我知道可以在 data.table 中执行类似的操作DT[,(Col_names):=lapply(Cols,mean)](此代码不起作用,但我以前做过类似的操作)。