问题标签 [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::select 中的 data.frame 所做的更改?
我想创建一个data.frame
包含有关特定列状态的一些信息的子类。我认为最好的方法是使用属性special_col
. 一个简单的构造函数似乎工作正常:
但是,我遇到的问题是,如果列名发生更改,我需要为各种泛型编写方法来更新此属性。如下所示,使用该data.frame
方法将保持属性不变。
这是我当前对my_class
. 我开始捕获这些点,然后解析它们以确定哪些列被重命名,如果它们实际上被重命名,则更改属性。
不幸的是,我认为这特别脆弱,在其他情况下会失败,如下所示。
我的感觉是,最好在tidyselect
完成工作后获取列中的更改,而不是像我所做的那样尝试通过捕获点来生成相同的属性更改。关键问题是:我如何使用tidyselect
工具来了解选择变量时数据框会发生哪些变化?. 理想情况下,我可以返回一些东西来跟踪哪些列被重命名为哪些其他列,哪些列被删除等等,并使用它来保持属性special_col
是最新的。
r - 使用 tidyselect 函数使用 dplyr 重命名列名
我正在尝试使用dplyr::rename
和 tidyselect 助手重命名一些列,以使用一些模式来做到这一点。
我怎样才能让它工作?
由reprex 包于 2020-01-12 创建(v0.3.0.9001)
r - R中的辅助函数
对于某些特定变量,无论它们的位置如何,我都试图用 0 替换 NA。我写了下面的代码,但得到了一些错误..
我收到以下错误
我已经安装了dplyr
, tidyr
, tidyselect
,但我仍然收到此错误,任何人都可以帮助我解决这个问题。
r - 在未实现它们的函数中使用 tidyselect 选择助手
如何在不实现它们的函数中使用dplyr
/ tidyselect
“选择助手”,例如:
选择一系列连续变量?
如果可能以简单/优雅的方式(当然这是主观的)。
这是一个例子dplyr::distinct
,注意这个问题是通用的
第一次尝试使用dplyr::select
. 我们能做得更好吗?
基于https://tidyselect.r-lib.org/articles/tidyselect.html的第二次尝试,实际上感觉更糟
r - 调用 tidyselect-using 函数时指定点参数,无需指定前面的参数
这是我在使用...
参数并tidyselect
选择变量的包中的函数的简化版本:
这有效:foo(mtcars, cyl)
但是我的实际函数在参数之前有更多前面的...
参数,所有参数都具有默认值。在我使用这些默认值调用我的函数并将值传递给...
.
这就是我想要的 - 假设dat = mtcars
- 但它不起作用:
foo(... = cyl)
错误:名称不得采用
...
或形式..j
。
我可以修改函数或调用以允许直接指定...
吗?
r - 如何使用 tidyselect 助手初始化变量?
我在某个函数中使用了 tidyselection,我必须将第一个参数与省略号连接起来,因为它可能是需要特定处理的特定类。
正常的行为是这样的:
我希望将其everything()
作为默认值x
(NULL
由于某种原因,我不能将其直接放在标题中)。
不幸的是,这种语法是不允许的:
我试图everything()
用我知道的所有“神秘”函数来包装:parse
, deparse
, call
, substitute
, quo
, sym
, enquo
, ensym
, ... 没有任何效果(你可以在这里看到我没有很好地掌握这些)。
我可以用什么表达式替换我x=everything()
的第二个代码块中的行以使该函数起作用?
版本:
- tidyselect 版本 1.0.0
- rlang 版本 0.4.5
- dplyr 版本 0.8.5
r - tidyselect 更改了在 R 中选择函数时如何引用变量名的外部向量
tidyverse
在包中使用选择功能时,我开始收到警告。
例子:
给予:
如果我重构为:
此行为已从 更改tidyselect_0.2.5
为tidyselect_1.0.0
。直到现在还没有任何警告。
在有关此更改的文档(https://tidyselect.r-lib.org/reference/faq-external-vector.html)中,声明这只是一个警告,但将来会变成错误。
我的问题是如何处理现有代码的此类更改。
我是否应该重构使用此选择方法的每一行代码来添加all_of()
外部矢量引用?当以这种方式进行选择的代码中可能有数百个片段时,这听起来很难完成(它也会影响其他功能
summarise_at
,例如)。
唯一的选择是坚持tidyselect_0.2.5
让运行代码继续工作吗?
在现有代码的包中进行这样的更改的方法是什么?
谢谢
r - R 替换除 * 之外的所有列的 NA
我实际的 R 数据框有数百列名称不整齐,但可以用df
上面的数据框近似。
我想用 替换所有值,NA
除了0
几列(在我的示例中,我想省略Date
列和thatCol
列。我想以这种方式进行操作:
下面显示了我完成“除此之外的所有内容”替换 NA 的不成功想法。
有没有办法以我需要的方式选择所有内容?有数百列,命名不一致,因此一一键入它们不是一个实际的选择。
r - 在编织 R 降价时尝试使用 tidyselect 函数创建新变量时 mutate_at 出错
我很可能遗漏了一些非常简单的东西,但我无法弄清楚为什么这个错误会持续存在于我的 mutate_at 函数中。
我正在尝试使用 mutate_at 在变量名称末尾添加后缀(“_cat”)的新列,但是在尝试选择包含“diff_”的变量时出现以下错误,我无法弄清楚为什么......: '(
编辑:
当我分段运行 R markdown 时,测试代码在我重新启动 R 后工作。但每当我尝试编织整个 markdown 工作簿时,错误消息仍然存在。这意味着我不能只重新启动 RStudio 来修复此错误。
我已经下载了最新版本的 R 和 RStudio,但仍然没有运气 :(。我想知道是否有人可以解释为什么会出现此错误消息?是 tidyselect 函数有问题吗?
谢谢!
编辑2:
作为参考,本节的完整代码为:
vars(contains("diff_")
当我编织 Rmarkdown 时,问题似乎出在我代码的最后一行。目前,我有一个非常粗略的解决方法,我已经列出了变量,而不是这样:
我能够使用这种粗略的解决方法来编织输出,但是知道为什么我的第一次尝试失败以供将来参考会非常方便。
r - pivot_longer 与 tidyselect where,where 但没有谓词?
我正在尝试使用该tidyselect
函数where
并pivot_longer
收到tidyselect
包不支持谓词的错误。这似乎有点不合理,所以很可能我有语法错误。(我意识到 SO 不适用于代码调试。)我认为如果有人能告诉我如何完成这项任务,它会帮助我更好地理解。