问题标签 [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.
r - 使用 dplyr 的 enquo 通过 sparklyr 访问 Spark 表列
我想成为 ebale在跳过 Spark 表列时enquo
在调用中使用 dplyr。lapply
但是,当我尝试运行此代码时,我不断收到错误:
错误
(function (x, strict = TRUE)
:参数已被评估
我已将错误隔离为enquo
:
(然后同样的错误)
错误
(function (x, strict = TRUE)
:参数已被评估
我想了解为什么enquo
不能那样使用。tbl_vars
返回一个普通的字符向量,不应该col_name
是一个字符串吗?我设想语法以与以下相同的方式工作:
但是,当从 lapply 内部调用时,显然情况并非如此。
编辑
将 sparklyr 方面放在一边,可以提供一个更好、更可重复的示例:
产生相同的错误。
期望的结果
基于 old_
的语法有效
总之,我想通过跳转到 Spark 表列来实现相同的功能,并且我不想使用 deprecated select_
。
r - 在 dplyr 0.7+ 函数中重命名
我在使用 dplyr 重命名函数中的列时遇到困难。我已经找到了关于非标准评估和 enquo 使用的有用帖子(例如,http ://dplyr.tidyverse.org/articles/programming.html和 在自定义 dplyr 函数中更改结果变量的名称)。最终目标是使用该函数对每个组进行汇总,然后将列重命名为比原始变量名称更有意义的名称。
这是一个简单的示例,除了注释掉的行之外它都有效。
在函数之外,相关部分将简单地阅读:mtcars <- mtcars %>% rename("Vehicle Cylinders" = cyl, "Vehicle Gears" = gear)
我一定被重命名在函数中与函数之外的操作方式所困扰。有什么建议吗?我愿意接受建议。
更新
这是一种方法。我宁愿不把变量名放在字符串中,但不知道这里有什么办法。接受建议。
r - R 对象的名称承载多个功能
根据我阅读Hadley 关于构建 S3 对象的建议,我正在使用辅助函数、构造函数和验证器函数。一个简单的可重现示例:
我希望生成的对象包含一个带有传入项目的原始名称的值($x_name
在上面的示例中)。如果我直接调用构造函数,这个deparse(substitute(...))
技巧就有效:
但如果我使用辅助函数则不是:
我也想test_helper$x_name
退货[1] "alpha"
。
如果没有在帮助器阶段执行该deparse(substitute(...))
步骤,构造函数 ( )是否可以通过帮助器new_test_object()
访问对象的“原始”名称?x
或者确保它的名称随着辅助函数传递给构造函数而传递?
r - 从列列表创建表达式的连接
我想从 char 向量创建一个连词表达式。即给定一个向量,如 c("a", "b", "c")。最终我想将它传递给 dplyr::filter
这是我的尝试:
在 R 中必须有一种更简单的方法来从字符串创建这样的表达式,但我找不到任何方法。有什么建议么?
r - dplyr 中基于字符串的过滤 - NSE
我想使用dplyr
新的 NSE 符号(版本 >= 0.6)来动态filter
处理我的数据。假设我有以下虚拟数据集:
如果现在我想过滤tofilter = "x"
大于 5 的值的列,我知道我可以这样做:
问题 1
如果我也想动态更改过滤运算符怎么办(假设我有一个 Shiny App,用户可以在其中动态selectInput
过滤大于 5、等于 5 或小于 5 的值的数据?
我想做的是:
显然,这是行不通的,我已经玩了一些rlang
quosore/symbols 等,但没有找到正确的方法来“引用”我的输入。
问题2
额外的问题是,如果我想应用多个过滤器怎么办?我是否需要循环,或者我可以创建一个过滤表达式列表并一次性应用它们?
一个例子是一个闪亮的应用程序,用户可以键入他/她想要应用于数据的多个条件,以便我们有一个动态变化的格式列表:
我们想动态地应用它们,这样输出就相当于:
我想这在某种意义上是问题 1 的一个子集,因为当我知道如何正确引用论点时,我认为我可以这样做:
但很高兴看看是否有更好的清洁方式
r - 用于变异的 Dplyr 编程模式
在函数内部使用 dplyr mutate 时,我一直在使用标准模式。这是一个玩具示例(仅用于证明一点):
我已经把它变成了一个函数,而不是每次都输入它。但这相当冗长,我不确定是否有更简单的方法来参数化对 mutate_ 的调用。建议?
r - dplyr NSE - 如何将列名传递给变异函数调用?
我想在变量中指定的列上使用 gsub 参数来改变数据框的列,但我正在努力应对非标准评估。
在这个玩具示例中,我想在调用 gsub时使用columns[[1]]
andcolumns[[2]]
而不是.$name_A
and 。.$name_B
我可以,还是需要重新考虑我的方法?
r - purrr 和 ggplot 函数未显示绘图(NSE 问题)
我怀疑这是处理 NSE 的问题。但是为什么这两种方法不起作用,我怎样才能让它们起作用。
r - 为什么 quosures 在 group_by() 中有效,但在 filter() 中无效?
我正在构建一个函数,我将根据字符串操作数据框。在函数中,我将从字符串中构建一个列名,并使用它来操作数据框,如下所示:
我了解问题所在:filter()
在损坏的版本中取消引用 quosure 作为参数不是引用实际列 anyA。
我不明白为什么它适用于summarize()
,但不适用于filter()
-- 为什么有区别?