当您有列名的字符向量时,如何不使用 select() dplyr 选择列?

2024-03-11

我正在尝试使用 dplyr 取消选择数据集中的列,但自昨晚以来我无法实现这一目标。

我很清楚解决方法,但我正在严格尝试通过 dplyr 找到答案。

library(dplyr)
df <- tibble(x = c(1,2,3,4), y = c('a','b','c','d'))
df %>% select(-c('x'))

给我一个错误: -c("x") 中的错误:一元运算符的参数无效

现在,我知道 select 接受未加引号的值,但我无法以这种方式进行子选择。

请注意,上面的数据集只是一个示例,我们可以有很多列。

Thanks,

Prerit


编辑:OP的实际问题是关于如何使用字符向量从数据框中选择或取消选择列。使用one_of()辅助函数:

colnames(iris)

# [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

cols <- c("Petal.Length", "Sepal.Length")

select(iris, one_of(cols)) %>% colnames

# [1] "Petal.Length" "Sepal.Length"

select(iris, -one_of(cols)) %>% colnames

# [1] "Sepal.Width" "Petal.Width" "Species"

您应该查看选择的帮助程序(键入?select_helpers)因为它们非常有用。来自文档:

starts_with(): 以前缀开头

ends_with(): 以前缀结尾

contains(): 包含一个文字字符串

matches(): 匹配正则表达式

num_range():数字范围,如 x01、x02、x03。

one_of(): 字符向量中的变量。

everything():所有变量。


给定一个列名为 a:z 的数据框,使用select像这样:

select(-a, -b, -c, -d, -e)

# OR

select(-c(a, b, c, d, e))

# OR

select(-(a:e))

# OR if you want to keep b

select(-a, -(c:e))

# OR a different way to keep b, by just putting it back in

select(-(a:e), b)

因此,如果我想省略其中两列iris数据集,我可以说:

colnames(iris)

# [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

select(iris, -c(Sepal.Length, Petal.Length)) %>% colnames()

# [1] "Sepal.Width" "Petal.Width" "Species" 

但当然,实现这一目标的最佳和最简洁的方法是使用以下之一select的辅助函数:

select(iris, -ends_with(".Length")) %>% colnames()

# [1] "Sepal.Width" "Petal.Width" "Species"   

附:奇怪的是你将引用的值传递给dplyr,它的一大好处是你don't必须一直输入引号。正如你所看到的,裸值可以很好地工作dplyr and ggplot2.

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

当您有列名的字符向量时,如何不使用 select() dplyr 选择列? 的相关文章

  • plot xts if (on == "years") { 中的错误:缺少 TRUE/FALSE 需要的值

    我正在尝试绘制 xts 对象 但出现有关年份的错误 xts 对象只有一个数值和一个 POSIXct 索引 下面的代码显示了 xts 和尝试绘图时的错误 关于需要对 xts 对象做什么才能正确绘制的任何想法 xTest lt as xts 3
  • 如何使用 grid.arrange 移动图例位置

    我试图在一页中排列 4 个图 将图例放在底部中心 我用它来获取其中一个图的图例 因为它们对于四个图来说是相同的 get legend lt function myggplot tmp lt ggplot gtable ggplot buil
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • R 编程中的字符串分割

    目前 下面的脚本将组合的项目代码拆分为特定的项目代码 rule2 lt c MR df 1 lt test grep paste rule2 sep collapse test Name y SpaceName 1 lt function
  • linux下无法安装Cairo包

    我在本地下载该软件包并尝试安装它 但出现此错误 R CMD INSTALL l usr local lib64 R library Cairo 1 5 1 tar gz 我得到他的错误 checking for PNG support in
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是
  • SQL Server RODBC 连接

    有没有人有使用 RODBC 并连接到 MS SQL Server 2005 或 2008 的连接字符串示例 谢谢 library RODBC dbhandle lt odbcDriverConnect driver SQL Server s
  • 枚举所有可能的二元组星座

    我正在寻找一种方法来枚举 n 个成员的所有可能的两人组星座 例如 对于 n 4 个成员 以下 3 个独特的组星座是可能的 请注意 组内成员的顺序和组顺序都不重要 1 2 3 4 1 3 2 4 1 4 2 3 例如 对于 n 6 个成员 可
  • R 中的输出,避免写“[1]”

    I use print从 R 中的函数输出 例如 print blah blah blah 这输出 1 blah blah blah 到控制台 我怎样才能避免 1 和引号 Use cat Your string type cat查看帮助页面
  • 通过 rpy 将 SPSS 文件(.sav)导入 pandas 时如何保留标签?

    我正在寻找使用 SPSS 文件 sav pandas 在没有 SPSS 程序的情况下 典型文件转换为 csv 后的样子如下 在调查前两行的含义时 我不知道 SPSS 似乎第一行包含Labels 而第二行包含VarNames 当我将文件带入
  • R(或替代方案?)中的高(或非常高)阶多项式回归

    我想对 R 中的一组数据进行 非常 高阶回归拟合 但是poly 函数的阶数极限为 25 对于此应用程序 我需要的订单范围为 100 到 120 model lt lm noisy y poly q 50 Error in poly q 50
  • 使用开源闪亮服务器时,我的图标不会显示在我的应用程序的浏览器选项卡上

    我一直在尝试找到一种方法将 ico 与托管在开源闪亮服务器上的闪亮应用程序的快捷方式关联起来 最终 我希望 ico 显示为我的应用程序快捷方式的图形 而且 我希望用户在创建应用程序的快捷方式时显示 可用此图标 听起来很简单 但事实证明这是一
  • R源代码.调用函数[重复]

    这个问题在这里已经有答案了 我正在查看R中cov的source code 并遇到了一段我不太明白的代码 协方差的数学定义goes http en wikipedia org wiki Covariance here if method pe
  • 指定生存图的自定义时间点

    我正在努力使用以下方法创建生存 累积事件图ggsurvplot函数从survminer包裹 我想为我的绘图指定自定义时间点 但我不知道该怎么做 这xlim and break x by参数有点帮助 但它们创建了均匀间隔的时间点和比我想要的更
  • 为 Linux 安装 R 包时出错

    我试图在 R 3 3 上安装一个名为 rgeos 的包 但是当我输入 install packages rgeos 但它返回给我以下错误 其他包也会发生同样的情况 但不是所有包 gt installing source package rg
  • 获取行名以 ABC111 开头的所有行

    我们有以下数据框 col1 col2 col3 ABC111001 12 12 13 ABC111002 3 4 5 ABC000111 7 6 1 ABC000112 9 23 1 如何获取行名以 开头的所有行ABC111 如下 ABC1
  • 双向条形图,两侧带有正标签ggplot2

    我尝试在 ggplot 中创建一个双向条形图 其中轴上方和下方的轴标签和数据标签均为正值 例如 如果您的数据是 myData lt data frame category c yes yes no no month c Jan Feb Ja
  • 如何拆分 data.frame -> 将合并应用于子集 -> 合并到 data.frame 中

    我真的不知道如何在不使用 for 循环的情况下实现这一目标 x lt c a b c d gt x 1 a b c d data lt data frame x c a b a b c a a b c d name c one one tw
  • ggplot() 使用scale::percent_format() 缩放产生奇怪的结果

    library tidyverse mtcars gt count cyl gt mutate prop n sum n gt ggplot aes x cyl y prop geom point scale y continuous la
  • 如何更改数据表中的少数列名称

    我有一个包含 10 列的数据表 town tc one two three four five six seven total 需要生成我正在使用的列 一 到 总计 的平均值 DTmean lt DT lapply SD mean by t

随机推荐

  • 为什么 OpenSSH RequestTTY 会导致 stderr 重定向到 stdout?

    当使用 T 和 t 运行相同的 ssh 命令时 任何 stderr 输出分别到达 stderr 和 stdout 没有分配 pty ssh T user host echo gt 2 foo 1 gt tmp out 2 gt tmp er
  • 救援_来自NoMethodError

    解决这个问题时遇到问题 试图做一个 rescue from NoMethodError with gt try some options 但它不起作用 编辑 为了测试我正在做一个简单的重定向 def try some options red
  • php 会话随机丢失,无法理解为什么

    我付钱给一个程序员制作一个购物篮脚本来与 Spreadshirt API 一起使用 一切都运转良好 只是篮子不断地变空 我认为会话在某个时刻丢失了 因此脚本创建了另一个会话BasketId 我试图找出发生这种情况是否有特定原因 但没有成功
  • 如何在notepad++中使用正则表达式修剪xml标签中的空格?

    我正在尝试修剪一个空间XML标签 这是我所拥有的示例
  • 移动网络性能:将数据从网络服务器传输到移动电话的最有效的数据类型是什么?

    Q 在 Web 服务器 其他 和手机 即 ios android 其他 之间传输数据时 哪种数据类型最有效 最快 JSON XML HTML Q 应该使用什么样的服务器端技术 php mysql Q 应该使用什么样的API 安息吗 RPC
  • 调用 around 方面时出现 AOP 异常

    我正在尝试在所有服务方法上运行一个方面 但这对于具有原始返回类型的方法似乎失败 我收到此错误 org springframework aop AopIn VocationException Null return value from su
  • 为什么 IE10 不显示嵌套的 CSS3 3D 转换元素?

    我在这里有点迷失 我目前正在测试 Windows 8 Release Preview 附带的 IE10 10 0 9200 16384 我遇到了非常困难的时间 困扰我的事情之一是 IE 似乎无法正确处理嵌套 3D 变换 请看这个小提琴 ht
  • Sitecore 插入规则以确保最多 (1) 个特定类型的子级

    sitecore 中有没有办法确保某种类型的项目只能有某种类型项目的 1 个子项 我正在阅读规则引擎食谱 但我没有得到太多细节 我工作过的一个网站要求特定项目类型下不能存在超过 6 个子项目 我们考虑过使用插入选项规则 但决定放弃这个想法
  • Spring可以在抽象类中自动装配吗?

    Spring 无法自动装配我的对象 是否可以在抽象类中自动装配对象 假设所有模式都在 application context xml 中提供 问题 基类和扩展类 如果有 Service Component 上应该使用什么注释 Example
  • Azure 存储 403 禁止异常是 32 位问题吗?

    我们花了相当多的时间来定位出现以下异常的原因 The remote server returned an error 403 Forbidden 堆栈跟踪 at Microsoft WindowsAzure Storage Core Exe
  • PC 客户端上的 C# Crystal Report 总是要求登录提示 SQL Server

    创建setup我的程序 程序运行良好 可以增删改查数据库 当我打开报告时 总是出现登录提示的问题 但在数据库字段中为空禁用 在服务器计算机上 报告没有问题 在我建立连接的代码中 像这样 cnn ServerName 179 15 30 74
  • map() get() 混淆

    我刚刚浏览了 jQuery API 我有点困惑map get 方法 我知道我错了但是map 方法看起来很像 each 陈述 除了文档说它返回一个新的 jQuery 对象 我一直在 jsfiddle 上玩这个 试图弄清楚它 但我还不太明白 h
  • 日志文件监视器

    是否可以在另一个应用程序更新文件时打开文本文件并读取内容 这样就不会导致锁定冲突 我需要监视一个应用程序的日志文件 每次发生事件时该日志文件都会由另一个应用程序更新 在尝试读取文件之前 我会检查该文件是否正在使用 但这似乎并不在所有情况下都
  • 在 Qt Creator 中使用 Qt 标准图标

    我想使用 Qt Standard 图标 as here http standards freedesktop org icon naming spec icon naming spec latest html 我发现了很多例子如何以编程方式
  • Thymeleaf 不解释 sec 标签

    我遇到了一个问题 thymleaf 无法识别我的 Spring Boot 项目中的 sec 标签 例如下面的 sec authentication 未被解释 并按浏览器中的 html 中的形式显示 div Roles span span d
  • 从 Elasticsearch 文档中删除字段

    我需要删除索引到 Elasticsearch 的所有文档中的一个字段 我该怎么做 backtrack 所说的是 true 但是在 Elasticsearch 中有一种非常方便的方法可以做到这一点 Elasticsearch 会抽象出删除的内
  • SQLite .NET,ExecuteScalarAsync,如何知道何时没有结果?

    SQL 语句正在检索行的 ID 但可能不存在这样的行 当我在 GUI 工具中执行特定 SQL 语句时 它返回 0 行在 0 毫秒内返回 但是 当我执行相同的 SQL 语句时ExecuteScalarAsync
  • Spark Scala UDP 在侦听端口上接收

    中提到的例子http spark apache org docs latest streaming programming guide html http spark apache org docs latest streaming pro
  • curl 重新使用 https 连接会话

    我已经使用 openssl 构建了curl 并且能够执行https 连接 现在 每次当curl建立TLS连接时 它都会再次握手 我需要利用客户端与服务器的先前连接会话ID 并在下一个请求中使用它 我已经尝试过以下选项 但每次尝试仍然会进行新
  • 当您有列名的字符向量时,如何不使用 select() dplyr 选择列?

    我正在尝试使用 dplyr 取消选择数据集中的列 但自昨晚以来我无法实现这一目标 我很清楚解决方法 但我正在严格尝试通过 dplyr 找到答案 library dplyr df lt tibble x c 1 2 3 4 y c a b c