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

r - 输入 dplyr::filter() 作为函数的参数

输入 dplyr::filter 到函数

如何创建一个以任何 dplyr::filter 作为输入并返回满足过滤器的行数的函数?

我已经尝试过这样的事情,但它不起作用:

在这里,我尝试将过滤器作为字符串输入:

给出错误:

该问题与Using dplyr filter() in programming类似但不是重复的,因为当前问题试图改变整个过滤器,而不仅仅是静态过滤器的输入。

0 投票
3 回答
615 浏览

r - 在 dplyr::mutate/transmute 中混合常量和变量列名

我正在尝试使用 dplyr 更改数据框列的类。目标列的名称包含在变量中

经过一番摆弄后,我设法使用标准 R 子集实现了我的目标:

但我怀疑引用目标列的方式不太复杂,这与其他“dplyr”表达式更一致。我已经尝试使用“使用 dplyr 编程”小插图中的信息来解决这个问题,但没有运气。谁能指出我正确的方向?

0 投票
2 回答
835 浏览

r - 在 dplyr::bind_cols 中使用点运算符

我看到 dplyr 出现了一些意外行为。我有一个特定的用例,但我会设置一个虚拟问题来说明我的观点。为什么这行得通,

但不是这个,

谢谢您的帮助。

0 投票
2 回答
326 浏览

r - 使用带有传入参数名称的“mutate”来创建新列

我想添加一个新的数据列并使用我传入的参数命名该列。我习惯于使用 dplyr 的 mutate 逐行和其他直接硬编码名称的方法,但我不确定从哪里开始。我将如何使用 mutate 或类似的简单/优雅的东西?

可重现的例子:

假设main是由以下定义的数据框

fieldname是一个字符串参数,传入了“name4”,new是c(6,5,4)

我想将fieldnamenew附加到main以用于最终数据帧

但下面的功能还不能那样工作。

0 投票
1 回答
304 浏览

r - 将多个参数传递给 ddply

我正在尝试创建一个将列表作为输入并返回汇总数据框的函数。但是,在尝试了多种方法后,我无法将列表传递给聚合函数。

到目前为止,我有以下内容,但它失败了。

这工作的地方:

有人会知道将函数列表传递给的方法ddply吗?或者另一种方法来实现聚合一组动态变量的相同目标。

0 投票
3 回答
1204 浏览

r - 使用 dplyr::case_when 进行整洁的评估编程

我尝试编写一个简单的函数来包装 dplyr::case_when() 函数。我在https://cran.r-project.org/web/packages/dplyr/vignettes/programming.html上阅读了dplyr文档的编程,但无法弄清楚它如何与 case_when() 函数一起使用。

我有以下数据:

以及以下列表:

然后我想写一个像这样的函数:

不幸的是category_fn(data,cat),在这种情况下给出了评估错误。我想获得与通过以下方式获得的输出相同的输出:

这样做的方法是什么?

0 投票
3 回答
953 浏览

r - do.call() 和整洁的评估

试图do.call()在 tidy 评估的背景下工作:

有什么区别:

和:

它们都给出了相同的错误:

我使用 进入函数browser(),检查了参数,在expr(mutate(df, category = case_when(!!! cat1)))那里运行(如http://rpubs.com/lionel-/programming-draft中建议的通用调试策略),在两种情况下都有相同的输出:mutate(df, category = case_when(~(item_name == "apple" ~ "fruit"), ~(item_name == "bmw" ~ "car"))).

我也尝试调整enviror.env参数无济于事。

我的理解是它可能与不同的quosure环境有关,但environment(cat1[[1]])也是相同的(<environment: R_GlobalEnv>)。

注意:
这在某种程度上是我试图回答的 dplyr::case_when 的 Tidy 评估编程的后续。

0 投票
2 回答
852 浏览

r - 如何使用 dplyr 评估具有非标准评估的构造字符串?

我已经阅读了几本关于编程的指南dplyr进行编程的指南,但我仍然对如何解决使用非标准评估 (NSE) 评估构造/连接字符串的问题感到困惑。我意识到有比使用 NSE 更好的方法来解决这个例子,但我想学习如何去做。

这是我想要的结果,但希望mutate()构建变量:

这是我的第一次尝试,尝试使用字符串:

这是我的第二次尝试,尝试使用 quosures:

这是我的第三次尝试,尝试使用 quosures 和:=运算符:

0 投票
1 回答
571 浏览

r - 带有向量输入的 Dplyr 条件列 ifelse

我正在尝试使用 dplyr 的新 NSE 语言方法来创建条件变异,使用向量输入。我遇到问题的地方是将列设置为等于自身,请参见下面的 mwe:

现在,使用以下内容:

ColToChange值设置为Name,而不是返回其原始值。因此,我试图使用上面的语法来实现这一点:

但不是Name,而是向量。

0 投票
1 回答
398 浏览

r - 如何在r中的多重比较中将字符串变量传递给multcomp :: glht函数

我正在做单向方差分析和事后多重比较。以 mtcars 数据集为例:

但是,我不想将变量硬编码为 cyl。所以我创建了一个变量 var='cyl':

我收到错误消息:

我认为问题来自在 mcp 函数中传递 var 。我怎样才能解决这个问题?我试过: as.name(var) , eval(quote(var))... 但没有运气.. 非常感谢您的帮助。