问题标签 [tidyselect]
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 Everything() 参数字符串 select_
我需要与参数一起使用带下划线select的字符串版本。它不工作。dplyreverything()
错误:没有注册 tidyselect 变量
有没有everything我遗漏的强调论点?
r - 使用 dplyr 按所有列排列数据框
我正在生成 1 和 0 的数据帧,如下所示:
由reprex 包(v0.1.1.9000)于 2018 年 1 月 8 日创建。
我需要按升序排列变量的总和,然后按降序排列每个变量。这很简单,使用dplyr::arrange(). 但是,我想有一个更强大的安排方法。例如,如果num_var更改为,则最后一行也必须更改为arrange(total, desc(var_1, var_2, var_3, var_4))。我已经尝试使用 tidy 选择器everything()来安排我对select()函数的处理,但是这个错误:
由reprex 包(v0.1.1.9000)于 2018 年 1 月 8 日创建。
有没有办法选择变量进行排列而不直接命名它们?
r - 从每行中的所有变量创建一个矩阵
我有一个存储一组矢量化矩阵的数据框。也就是说,在每一行中,我都有与矩阵中的元素相对应的 NxM 变量。
给定这个数据框,我想将一个函数应用于存储在每一行中的矩阵,然后将结果存储在一个新变量中。
一种简单的方法是指定 NxM 变量的名称。例如,如果我要应用的函数只是元素的总和(在实际情况下,它计算该矩阵的可能性):
但是由于我的矩阵的维度可能会从一个实验变为另一个实验,并且由于这个维度通常太大而无法枚举所有变量,所以我想要一个通用的解决方案。
我尝试
(在此示例中,应调整 ncol 和 nrow 以适应当前变量数,但我可以手动完成。)
但这会引发错误:
mutate_impl(.data, dots) 中的错误:评估错误:没有注册 tidyselect 变量。
有没有简单的方法来做到这一点?
r - dplyr::filter "没有注册 tidyselect 变量"
我正在尝试使用该dplyr::filter()函数过滤我的 tibble 的特定行。
这是我的小标题的一部分head(raw.tb):
当我要求:raw.tb %>% dplyr::filter(ind == contains("A"))
我得到:
Error in filter_impl(.data, quo) :
Evaluation error: No tidyselect variables were registered
在我的小标题unique(raw.tb$ind)是:
而且我想raw.tb$ind使用 tidyverse 语言仅提取以“A”开头的行。
(我知道如何在基础 R 中做到这一点,但我的目标是使用 tidyverse)。
非常感谢任何反馈
r - 正则表达式(用 tidyr 收集多组列)
受到哈德利在这个答案中的漂亮gather方法的启发,我尝试使用tidyrgather()并spread()结合正则表达式regex,但我似乎在regex.
我确实研究了几个regex问题;这个,这个,还有regex101.com。我试图regex通过使用来规避starts_with(),ends_with()并matches()受到这个问题的启发,但没有运气。
我在这里问是希望有人能指出我哪里弄错了,我可以解决它,最好使用来自tidyselect的选择助手。
我需要选择 2 个regex组,一个到最后一个.,一个由最后一个组成.,我在下面做了两个示例,一个在我的代码工作的地方,一个在我被卡住的地方。
首先是有效的例子,
第一个数据集,工作,看起来像这样,
我就是gather()这样,
它有效,我怀疑我用 . 过度使用它regex,但它有效。但是,我的真实数据最后可以有一个或两个摘要,即
第二个数据,我卡住的地方,
现在,这是我(0[0-1]|1[0-9])$用于第二组的地方,我也尝试过类似的东西\d{1}|\d{2},但这也不起作用。
预期的输出将是这样的,
一个简单的解决方案 à la t this question using select helpers like starts_with(), ends_with(), matches(), 等将不胜感激。
r - 错误:找不到函数“lang_unnamespace”
我在这个 Travis build 中遇到了错误,我无法在本地重现它。是的,我意识到我没有最小的可重现示例,但我知道它发生在tidyselect::vars_select(). 有没有其他人遇到过这个?lang_unnamespace()我在谷歌搜索中找不到任何提及。
r - 变异多个变量以创建多个新变量
假设tibble我需要获取多个变量并将它们变异为新的多个新变量。
例如,这是一个简单的 tibble:
我想从名称以“y”开头的每个变量中减去变量 z,并将结果变异为 tb 的新变量。另外,假设我不知道我有多少“y”变量。我希望解决方案能够很好地适应tidyverse/dplyr工作流程。
本质上,我不明白如何将多个变量变为多个新变量。我不确定您是否可以mutate在这种情况下使用?我试过mutate_if了,但我认为我没有正确使用它(并且我得到一个错误):
提前致谢!
r - 基于 unquote-splicing (!!!) 排除多列
试图排除
- 调用中的多个列
tidyr::gather() - 通过字符向量参数(的输出
shiny::selectInput)而不是通过... - 以程序化的方式
我将如何使用整洁的 eval 功能来做到这一点?
由于我通过单个函数参数传递多个列名,因此我认为我需要使用!!!(unquote-splicing) 而不是Programming with dplyr!!中所述。但这似乎并不能很好地发挥作用,而且似乎是造成了麻烦。tidyselect::vars_select()-
这是我想做的基本事情:
但我想通过单个参数传递列名(就像在闪亮的应用程序中一样,它也将通过它提供服务input$<select_input_id>):
然后我试着看看-是不是问题:
这似乎行得通。
然后我尝试-输入实际的符号名称,但这不起作用(至少是我尝试的方式;-)):
编辑
在莱昂内尔的帮助下,我能够拼凑起来:
甚至简化:
由reprex 包(v0.2.0) 于 2018 年 4 月 26 日创建。
r - 插入符号:未找到“rlang_env_get”
library(caret)几天前我跑了,它奏效了。从那以后我更新了 Rtools,现在我遇到了一些我无法通过常用方法解决的错误
错误信息如下:
类似的tidyselect
我都试过install.packages了
当我这样做时,我可以加载tidyselect,但不是caret。然后我决定尝试caret:的 github 版本devtools::install_github('topepo/caret/pkg/caret')。这失败了几个错误消息:
和
会话信息():
关于我应该看什么的任何想法都会很棒。谢谢,乔尼
r - dplyr::select() 带有一些可能不存在于数据框中的变量?
我有一个辅助函数(比如foo()),它将在可能包含或不包含指定变量的各种数据帧上运行。假设我有
我要选择的变量是
也就是说,我想foo(d1)返回taxon,model和z列,而foo(d2)只返回taxonand z。
如果foo包含select(data,c(taxon,model,z))则foo(d2)失败(因为d2不包含model)。如果我使用select(data,-pss)thenfoo(d1)类似地失败。
如果我从 tidyverse 撤退(只是 return ),我知道如何做到这一点data[vars],但我想知道是否有一种方便的方法可以做到这一点,或者(1)使用某种select()助手(tidyselect::select_helpers)或(2)使用 tidyeval(其中我还没有找到时间让我的头脑转转!)