问题标签 [quosure]

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 投票
3 回答
109 浏览

r - 使用现有 quosures 在函数中创建新表达式(dplyr 编程)

我正在尝试根据函数的参数中的 quosures 制作“新表达式”,但不确定如何准确制作这个新表达式。

这是一个示例,其中我传递了一个分子和分母,理想情况下会在两者上进行突变,但也希望在将它们分开的地方进行突变:

这失败并出现以下错误:

我可以轻松地将表达式作为它自己的参数传递并 enquo() 它,但这不适用于更多表达式。我还可以从基本 quosures 在数据框中创建临时列,然后直接计算表达式,但这似乎太冗长了。我想有一种更简单的方法可以做到这一点

0 投票
1 回答
969 浏览

r - 将 dplyr quosures 与 mutate() 一起使用

阅读Programming with dplyr指南,我收到一个意外错误。

实际上,尝试使用示例summarize非常正确,但是如果我尝试使用 进行类似操作mutate,则代码将无法运行。

这是我的代码:

这是错误:

!var2 中的错误:无效的参数类型

我尝试了很多东西,但这是我最接近指南样本的地方。

我错过了什么 ?

0 投票
1 回答
153 浏览

r - 使用 SE mutate 函数的动态变量名

我不知道如何在 for 循环中将动态变量分组。

df是包含clm_april-clm_sept变量的数据框double。此外,我想为新列添加不同的名称。

每个月不同的组如下所示:

以下不起作用:

我也试过:

R 抛出以下错误:

你能帮我解决这个问题吗?

编辑:

0 投票
1 回答
185 浏览

r - dplyr 中 quo() 的逆

使用 dplyr 0.7.4 的新 quosure 语法,我相信我应该能够做类似!!quo(1)(expecting 1) 的事情,但它返回错误

为什么这不起作用?(请注意,在基础 R 中,可以做到eval(quote(1))。什么是 dplyr 类似物?)

...!!仅在 dplyr 函数中定义?

0 投票
2 回答
1084 浏览

r - dplyr 使用可变列进行变异

我正在尝试使用mutate基于特定列的值创建一个新列。

示例最终数据框(我正在尝试创建new_col):

我想做类似的事情:

除了列内容之外,我想将它们转换为变量。我开始:

这适用于静态变量。但是,我一直无法更改变量来表示该列。如何根据不同列的内容取列名?

这个问题基本上与此相反:dplyr - mutate: use dynamic variable names。我无法使解决方案适应我的问题。

0 投票
2 回答
729 浏览

r - 在 dplyr 中从弃用的 summarise_ 迁移到新的 summarise

我有一个函数可以计算基于变量内容选择的列的分组数据库的平均值VarName。当前函数使用dplyr::summarize_,但现在我看到它已被弃用,我想在它完全删除之前替换它。

但是,我不确定如何使用新的取消引用来实现我想要做的事情。这是我当前的代码:

我尝试用 替换该.dots部分means=mean(!!VarName, na.rm=TRUE),但这只是返回了 VarName 中的字符串。我需要将 VarName 中的字符串评估为 中的列名dat,这样我将得到一个列名“means”,其中包含每个组的平均值。我怎样才能用新的实现这一目标summarize

可重复性的样本数据集:

谢谢!

0 投票
1 回答
1363 浏览

r - 如何将多个 group_by 参数和动态变量参数传递给 dplyr 函数

我正在尝试将多个 group_by 参数传递给 dplyr 函数以及命名变量。了解我需要使用 dplyr 的 quosure 来了解我传递给它的变量。以下代码工作正常:

但是,当我运行以下命令时,我遇到了问题:

返回以下错误:

样本数据:

你们可以提供的任何帮助将不胜感激。

0 投票
1 回答
699 浏览

r - dplyr .data 代词与“quosure”方法

dplyr v0.7.0中,.data引入了代词,允许我们使用字符串来引用变量。我只是好奇这种方法是否比“quosure”方法更受欢迎。例如,这是一种使用.data代词的方法:

这与使用以下方法的示例进行了比较quosure

两种方法产生相同的输出:

有什么真正的区别吗?两种方法的优缺点是什么?

0 投票
1 回答
771 浏览

r - 在匿名函数内的公式中使用 quosures

我正在尝试使用 quosures 在自定义函数中传递变量名称以进行数据处理并在公式中使用,但我在公式中使用 quosures 是不正确的。有没有更好的方法来取消引用公式中的参数?

我的代码产生“mutate_impl(.data,dots) 中的错误:评估错误:对象不是矩阵。”

这是我试图制作成函数的代码的工作版本:

0 投票
2 回答
430 浏览

r - 创建可以判断变量输入是字符串还是符号的 dplyr 函数

我一直在研究“使用 dplyr 编程”小插图,因为我想创建使用 dplyr 函数的函数。我想使用我在闪亮的应用程序和交互式 R 工作中创建的功能。为了在闪亮中使用,我希望这些函数采用字符串参数并使用 sym 函数将它们转换为符号。为了在交互式会话中使用,我希望这些函数可以选择不必使用字符串。所以我制作的函数需要一种方法来判断某些参数是否是字符串。

我想出了一个办法。我只是好奇是否有更好和/或更优雅的方式来做到这一点。

我做了一个简单的函数“my_summarise”作为例子。它是与小插图不同的函数“my_summarise”版本。它使用 tryCatch 来检查 group_var 参数是否为字符串。

编辑: Onyambu 的答案是完美的。我只是对其进行了调整以使用一些 rlang 函数而不是它们的基本等效函数。