问题标签 [rlang]
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 和 tidy 评估以编程方式过滤数据框?
假设我想以starwars
编程方式过滤数据框。这是一个简单的示例,可让我根据家庭世界和物种进行过滤:
但这并不能让我指定高度过滤器,因为我已经在 of 中硬编码了运算%in%
符,而高度过滤器将使用, , ,或运算符之一.vars_predicate
filter_at()
>
>=
<
<=
==
编写filter_starwars()
函数的最佳方法是什么,以便用户可以提供足够通用的过滤器以沿任何列进行过滤并使用任何运算符?
注意使用现在已弃用的filter_()
方法,我可以传递一个字符串:
但同样,这已被弃用。
r - 在编程中使用 dplyr filter()
我正在编写我的函数,并想使用 dplyr 的 filter() 函数来选择满足条件的数据帧行。这是我的代码:
每当我运行此函数时,似乎filter
都没有选择任何满足条件的行。
我怎样才能使这项工作?
更新
出于某种原因,这在我不使用 `%in%, as in; 时有效。
但是,每个循环的结果都是相同的。为什么会这样?还有为什么我不能使用%in%
.
r - 列名存储在字符串中时的整洁评估
我需要按逻辑列(或更准确地说,按其否定)过滤表,但列的名称可能会有所不同。当我事先知道他们的名字时,这很容易:
但是,当列名存储在字符串中时,我无法弄清楚如何做同样的事情。例如:
那么问题来了,我该怎么做呢?
编辑:这不是这个问题的重复,因为从那时起,使用 dplyr 进行非标准评估的首选方式发生了变化。所有以 _ 结尾的函数现在都已弃用,现在推荐使用 tidy 评估框架。
r - bind_rows 和 tidyeval 拼接失败
子集然后绑定按预期工作
但是如果我们跳过中间步骤
它失败了Error: only lists can be spliced
r - 使用 tidyeval 具有非标量字符向量的 group_by
使用R 3.2.2和dplyr 0.7.2我试图弄清楚如何有效地使用group_by
作为字符向量提供的字段。
选择很容易我可以像这样通过字符串选择一个字段
像这样通过多个字符串的多个字段
和多个字段通过一个长度 > 1 的字符向量,像这样
由于group_by
我无法真正找到一种方法来为多个字符串执行此操作,因为如果我设法获得输出,它最终会按我提供的字符串进行分组。
我设法像这样按一个字符串分组
这已经很丑陋了。
有谁知道我必须写什么才能运行
和
分别?!!
我尝试了, !!!
, UQ
, enquo
, quos
,等的各种组合unlist
......并将它们保存在中间变量中,因为这有时似乎有所作为,但无法让它发挥作用。
r - dplyr 0.7 等效于弃用的 mutate_
我找不到dplyr 0.7
替换将被弃用的mutate_函数的方法。
mutate_函数在我的用例中很有用:我在数据库(字符串格式)中存储了许多指令(可以根据需要进行过滤)并将这些指令应用于一个或多个数据帧。
例如 :
有没有办法使用 dplyr 0.7 将变量和指令保持为字符?
r - Use dplyr coalesce in programming
I'd like to use dplyr's programming magic, new to version 0.7.0, to coalesce
two columns together. Below, I've listed out a few of my attempts.
I thought fn1
would work, but it's treating varname
as character on the right-hand side.
Another attempt with enquo
:
Maybe I can splice with !!!
instead? (Spoiler: I can't.)
r - 使用 dplyr 和 group_by 编写自己的函数 - 如何继续更改列名
我想制作表格以给出观察次数,按两个变量分组。这个代码工作正常。但是,在尝试将其转换为函数时遇到了问题。
我正在使用 dplyr_0.7.2
使用 mtcars 的示例:
函数外表的代码:这有效
试图把它放到一个函数中
tab1 的功能:这有效
tab2 的第一部分的功能:到目前为止它可以工作,但是......
列名已更改为 (cyl) 和 (gear)。既然列名已更改,我似乎无法弄清楚如何继续使用 spread() 和 full_join() (或使用新列名的任何其他内容)。即我不知道如何以 tidyeval 方式指定新的列名,以便能够继续。我尝试了各种事情,但没有成功。
r - 如何获取多列的顶级列表
我可以选择并排列一列:
但我想对整个数据框执行此操作。我正在使用 forloop 来解决这个问题:
这给了我一个错误。
显然是arrange(desc(label))
行不通的。我四处搜索并尝试了类似UQ
和substitute
取消引用的方法label
,但没有结果。
和结尾rbind(top)
也top_n
可能不是我想要的,但我现在遇到的主要问题是如何使用label
forloop 将接受它。
也许有人知道比我的forloop更好的方法......
所需的输出是一个数据框,每列的前 3 个。
r - 使用 get() 和 eval() 在 dplyr 函数中传递参数
我正在尝试编写我的函数并且需要在里面传递参数。以 mtcars 数据集为例:
在上面的函数中,用 get() 替换 eval() 给了我错误。我有点困惑我应该使用哪一个。我使用 get() i 其他一些功能和工作。这两者有什么区别?