如何反转 dplyr::select 的辅助函数?

2023-12-30

如何反转辅助函数dplyr::select()(like matches() or contains())以便我可以选择不包含或不匹配特定字符串的变量?

例如,假设我想选择 mtcars 数据框中没有字母“m”的所有列。我可以想象做类似的事情:

mtcars %>%
    select( !matches("m") )

但这会引发错误:

Error: !matches("m") must resolve to integer column positions, not a logical vector

如何编写辅助函数来反转它?

重要提示:一种可能性是使用matches()并编写一个不匹配的正则表达式,但我更感兴趣的是找到一种方法来保持辅助函数的简单性,但反转它们返回的选择,而不是解决实际的“我如何选择这样的-和-”这样的问题。


辅助函数用于select() like matches(), contains(), starts_with()依此类推,返回索引值向量。在上面的例子中,如果我们不想要逆,matches("m")会回来c(1,9)因为第一列和第九列名称包含“m”。

考虑到这一点,我们所要做的就是使函数为负:

mtcars %>%
    select( -matches("m") )

这使得matches("m")返回一个向量c(-1, -9)它会取消选择这些列,但保留其他所有内容。

Using !, 布尔值NOT,如原始示例所示,将整数值强制为逻辑值,因此而不是c(1,9),你最终会得到c(FALSE, FALSE)因为 1 和 9 都强制TRUE但随后被反转!.

这解释了上面 R 抛出的错误——select()想要一个与列索引相对应的整数列表,而不是逻辑值向量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何反转 dplyr::select 的辅助函数? 的相关文章

  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • 使用点阵个性化 R 上显示的 X 轴值

    我收集了大量包含日期 客户端及其 NFS 使用情况的数据 我正在使用lattice R包进行绘图 正如对超级用户的建议 https superuser com questions 523195 plot custom log data on
  • 如何动态地将 sliderInput 添加到闪亮的应用程序中?

    使用闪亮 我上传一个 csv 文件 并根据列名称 我需要向 ui 添加滑块 sidebarPanel fileInput file1 Upload CSV File to Create a Model accept c text csv t
  • R 改变构面的顺序

    我正在尝试将方面的顺序从 BA SLG 更改为 SLG BA 我发现了与此类似的问题 但我认为我的解决方案可能不起作用 因为我已经在Excel中汇总了数据 因此 我的数据框可能会有所不同 无论如何 我尝试实现这个但无济于事 df2 lt f
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • 在 R 上安装 TDA 包时出错:目标“diag.o”的配方失败

    使用 Ubuntu 16 04 和 R 3 4 1 安装 R 包 TDA 时收到错误消息 它似乎与制作 CGAL diag cpp 和 或 diag o 最后的完整错误打印输出 有关 我仔细看了这个 在 R 上安装 TDA 包时出错 htt
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的
  • 更改 R 中 ggplot geom_polygon 的颜色方案

    我正在使用地图库和 ggplot 的 geom polygon 创建地图 我只是想将默认的蓝色 红色 紫色配色方案更改为其他颜色 我对 ggplot 非常陌生 所以如果我没有使用正确的数据类型 请原谅 我使用的数据如下所示 gt head
  • 条件和分组 mutate dplyr

    假设我有以下每个抽屉库存增加的数据 gt socks year drawer nbr sock total 1990 1 2 1991 1 2 1990 2 3 1991 2 4 1990 3 2 1991 3 1 我想要一个二进制变量来标
  • 在 RGL 中将立方体绘制到 3D 散点图中

    我正在尝试向 3D 散点图添加较小的立方体 网格 具有指定边长 我希望立方体位于原点 我该怎么做呢 我已经玩过cube3d 但我似乎无法将立方体正确定位 也无法使其成为网格 因此我可以看到它包含的数据点 这是我所拥有的 library rg
  • 安装 2.15 后 ggplot2 中的 alpha 通道不起作用

    更新到 R 2 15 后 ggplot 中的 alpha 通道似乎不再起作用 plot rnorm 100 rnorm 100 bg cc000055 pch 21 工作得很好但是 qplot rnorm 100 rnorm 100 col
  • 使用“assign()”为列表项分配值

    首先了解一些背景 我写了一个中缀函数 本质上取代了这个习惯用法 x length x 1 lt y 或者简单地说x lt append x y 对于向量 这里是 lt function x y xcall lt substitute x x
  • 使用data.table进行聚合

    经过 SO 用户的多次建议后 我终于尝试将我的代码转换为使用data table library data table DT lt data table plate paste0 plate rep 1 2 each 5 id rep c
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met
  • 如何使用 dplyr 管道将额外参数传递给 purrr::map

    我有以下数据框和功能 param df lt data frame x 1 3 0 1 y 3 1 0 2 param df gt x y gt 1 1 1 2 8 gt 2 2 1 1 8 gt 3 3 1 0 8 my function
  • 使用行内 r 代码作为 R markdown 标头的一部分

    我希望使用行 R 代码作为 r markdown 文件中标头的一部分 然而 当我编织文件时 标题上使用的字体是不同的 如何确保字体相同 下面是一个简单的例子 r 1 1 Header 您可以将内容括在反引号中以表示内联 r 代码 如下所示
  • 将动物园转换为数据框

    我转换了一个zoo time series到数据框中R日期成为数据框的索引 有没有办法将日期表示为数据框中的普通列 monthly df lt data frame monthly zoo head monthly zoo head mon
  • 聚合函数在数据框中创建不需要的向量

    我在函数中创建数据帧时遇到了一个奇怪的问题 但是 在 data frame 之外使用相同的方法效果很好 这是基本函数 我用它来计算数据集的平均值 标准差和标准误差 aggregateX lt function formula dataset
  • 导入 .sav 时出现警告/错误

    我工作中有两个版本的 SPSS SPSS 11 在 Windows XP 上运行 SPSS 20 在 Linux 上运行 SPSS 的两个副本都工作正常 使用任一版本的 SPSS 创建的文件在其他版本的 SPSS 上打开时不会出现任何问题
  • 如何绘制 Voronoi 曲面细分的多边形而不是线段?

    我找到了一种使用 ggplot2 绘制 Voronoi 曲面细分的分段的方法 library deldir library ggplot2 library ggthemes set seed 123 df lt data frame lat

随机推荐

  • 如何使面板居中?

    即使表单的大小发生变化 如何使面板居于表单中心 使用 C Windows 应用程序 使用设计器将面板放置在窗体的中心 然后清除Anchor属性 因此它不锚定到任何边缘 这将在调整表单大小时使其保持居中 而无需调整面板本身的大小 如果由于某种
  • 图搜索和树搜索有什么区别?

    有什么区别图搜索 and 树搜索有关 DFS A 搜索的版本人工智能 从现有的答案来看 这个概念似乎存在很多混乱 问题始终是图表 树搜索和图搜索之间的区别并不在于问题图是树还是一般图 始终假设您正在处理一般图表 区别在于遍历模式用于搜索图形
  • Google 地图 API v3 - 灰显或删除状态?

    是否可以将我不想从地图上看到的状态灰显 甚至更好地一起删除 搜索时无法找到任何明确的答案 我试图仅显示德克萨斯州地图并在其上放置标记 Thanks 你在寻找类似的东西吗这个 v2 示例 http maps forum nu gm texas
  • MSChart:饼图标签重叠问题

    我用过MSChart Control在我的一个VB NET项目 我决定将如下表所示的数据显示为饼图 但标签相互重叠 为了摆脱它 我已经尝试过 智能标签 属性如下图所示 Chart1 Series Default SmartLabelStyl
  • 如何防止标签栏控制器中的视图控制器旋转?

    我有一个管理 4 个选项卡的选项卡栏控制器 我对选项卡栏控制器进行了子类化 以便 shouldAutorotateToInterfaceOrientation 方法仅允许选项卡之一中的特定视图控制器旋转 一切工作几乎正常 其余选项卡中的控制
  • Oracle 数据库:DBMS_ALERT 在 Java 应用程序中的使用

    我有一个 java 应用程序服务器 使用 JDBC 与 oracle 11 2 数据库服务器进行通信 客户端的请求被发送到应用程序服务器 该应用程序服务器运行调用数据库中的第一个存储过程的java方法 我希望 java 方法在调用存储过程后
  • Python中线程之间的通信(不使用全局变量)

    假设我们有一个主线程 它为测试模块启动两个线程 test a 和 test b 无论测试模块执行完毕还是遇到任何错误 警告或者想要更新某些其他信息 两个测试模块线程都会保持其状态 主线程如何访问这些信息并采取相应的行动 例如 如果 test
  • 在R中获取Windows系统文件夹(用户主目录,“我的文档”等)路径

    我想获取用户主文件夹的完整路径 通常类似于 C Users USERNAME 或 我的文档 文件夹 但无法找到从 R 脚本执行此操作的方法 有什么解决办法吗 我想你想要 path expand
  • C# WPF 应用程序 .NET 4.5 设置鼠标位置 [重复]

    这个问题在这里已经有答案了 第一次在这里问问题 我在这里找到的解决方案似乎由于某种原因不起作用 我的应用程序需要在窗口激活时设置鼠标位置 我设置了该功能 但无法使光标属性发挥作用 由于某种原因 我无法使用 Cursor Position 或
  • 使用 SSH.NET 连接到 OpenSSH 7.4p1 失败,并显示“服务器响应在该位置包含空字符”,但在 WinSCP 中可以正常工作

    我正在尝试使用 SSH NET 2020 0 0 连接到 SFTP 服务器 我的代码看起来很简单 try var x new ConnectionInfo FtpIpAddress 22 FtpUser new PasswordAuthen
  • Scala 复制具有泛型类型的案例类

    我有两节课PixelObject ImageRefObject还有更多 但这里只是这两个类来简化事情 它们都是a的子类trait Object包含一个 uid 我需要通用方法 它将使用给定的新实例复制案例类实例uid 我需要它的原因是因为我
  • 使用 DotNetNuke 设置单独的 ASP.NET 应用程序

    我在 Windows Server 2008 64 位系统上安装了 DotNetNuke v5 1 4 社区版 使用 SQL Server 2008 64 位作为后端数据库 并且我想从中引用一个单独的 ASP NET 应用程序 我计划通过
  • 使用 Gremlin 在二部图上随机游走

    我想根据给定的用户偏好 用户喜欢的项目 基于使用groovy中的gremlin在有向二分图上进行随机游走来对项目进行排名 该图具有以下基本结构 用户1 喜欢 gt 项目A 项目B 此后我提出的查询 def runRankQuery def
  • 如何在Python中获取处理器名称?

    在我的 Windows 笔记本电脑上使用 Python 中的平台模块 我得到以下输出 import platform platform processor Intel64 Family 6 Model 58 Stepping 9 Genui
  • NSTextField 的边距和填充? (迅速)

    我想知道是否可以设置边距或填充NSTextField 我实现了或多或少自定义的文本字段 此屏幕截图中的第一个 使用此代码 myTextField wantsLayer true myTextField layer cornerRadius
  • Django 的 Db2 驱动程序?

    在我看来 Django 目前只提供了 4 个后端数据库引擎 它们是 django db backends postgresql django db backends mysql django db backends sqlite3 djan
  • 更改字典中键的名称

    如何更改 Python 字典中条目的键 只需 2 步即可轻松完成 dictionary new key dictionary old key del dictionary old key 或者一步 dictionary new key di
  • 我可以始终使用 WorkManager 而不是协程吗?

    我想知道既然有像 WorkManager 这样出色的解决方案 我为什么还要为 rx 或协程烦恼呢 但几乎所有教程都使用协程 那么 WorkManager 可能有缺点吗 两者的范围不同 WorkManager 可以推迟 任何以后的时间 或立即
  • Box2dweb - 碰撞接触点

    我使用box2dweb 我正在尝试开发一款游戏 在某些时候 我需要找出 圆 和 盒子 之间的接触点 我所知道的是可以使用 b2ContactListener 来完成 我们可以通过使用 Post Solve Event 实现 b2Contac
  • 如何反转 dplyr::select 的辅助函数?

    如何反转辅助函数dplyr select like matches or contains 以便我可以选择不包含或不匹配特定字符串的变量 例如 假设我想选择 mtcars 数据框中没有字母 m 的所有列 我可以想象做类似的事情 mtcars