使用单独数据帧中的值重命名列

2023-11-21

我有一个 tibble,其中的列名包含空格和特殊字符,这使得使用起来很麻烦。我想在处理数据时将这些列名称更改为更易于使用的名称,然后在最后将它们更改回原始名称以进行显示。理想情况下,我希望能够将其作为管道的一部分来完成,但是我还没有弄清楚如何使用rename_with().

样本数据:

df <- tibble(oldname1 = seq(1:10),
             oldname2 = letters[seq(1:10)],
             oldname3 = LETTERS[seq(1:10)])


cols_lookup <- tibble(old_names = c("oldname4", "oldname2", "oldname1"), 
                      new_names = c("newname4", "newname2", "newname1"))

期望的输出:

> head(df_renamed)
# A tibble: 6 x 3
  newname1 newname2 oldname3
     <int> <chr>    <chr>   
1        1 a        A       
2        2 b        B       
3        3 c        C       
4        4 d        D       
5        5 e        E       
6        6 f        F 

在此工作期间,某些列被删除并重新排序,因此当将它们转换回来时,将在cols_lookup不再存在的表df。还创建了新列df我想保持名称不变。

我知道已经有人问过类似的问题,但是答案要么不适用于小标题,要么在管道中(例如,那些使用match()),或者如果两个表中的列并非都以相同的顺序出现,则不起作用。


我们可以用rename_at。从主查找表中,filter所在的行names的数据集有一个匹配项(filtered_lookup),然后将其用于rename_at我们在其中指定“old_names”vars并替换为“new_names”

library(dplyr)
filtered_lookup <- cols_lookup %>% 
     filter(old_names %in% names(df)) 
df %>% 
  rename_at(vars(filtered_lookup$old_names), ~ filtered_lookup$new_names)

或者使用rename_with,使用相同的逻辑

df %>%
  rename_with(.fn = ~filtered_lookup$new_names, .cols = filtered_lookup$old_names)

或者另一个选择是rename与拼接(!!!) 来自命名向量

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

使用单独数据帧中的值重命名列 的相关文章

  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F
  • 将每列的值乘以 R 中另一个 data.frame 中的权重

    我有两个data frames df and weights 代码如下 df看起来像这样 id a b d EE f 1 this 0 23421153 0 02324956 0 5457353 0 73068586 0 5642554 2
  • 在 R 中使用 lapply 绘制多个数据帧

    我正在尝试使用 lapply 函数绘制多个数据帧 每个数据帧一个图 但是尽管有关此主题的所有帖子我都找不到答案 因为我不断收到错误 图的输出列表为空 我的数据结构如下 df1 lt mtcars gt group by cyl gt tal
  • 如何获得所有大于x且有位置的数字?

    V lt c 1 3 2 4 2 3 1 X lt 3 pos lt V V X pos is 3 3 我需要的是所有 3 个的位置 I need 2 and 6 哪些职位是3 in V Use which pos lt which V 3
  • 如何在 R 中匹配多个 ggplot2 图中的调色板?

    自从被问到这个问题以来已经有一段时间了 但我知道一个事实 我很快就会提取新数据 我想弄清楚如何用这种技术来绘制它 看起来评论和答案中的人知道如何做到这一点 但我无法完全弄清楚所给我的内容 还有人想尝试一下吗 我正在尝试使用具有多个级别的因子
  • 如何从 R 中的 txt 文件读取矩阵?

    我有一个带有矩阵的txt文件 Matrix txt 重要 数字之间没有空格 0100 1001 1100 我想在 R 中将其作为矩阵读取 我该怎么做 我尝试使用 as matrix read table Matrix txt sep 但失败
  • 纵向比较 R 中的值...并进行扭转

    我有许多人在多达四个时间段进行的测试结果 这是一个示例 dat lt structure list Participant ID c A A A A B B B B C C C C phase structure c 1L 2L 3L 4L
  • R:如何获取该月的周数

    我是 R 新手 我想要该日期所属月份的周数 通过使用以下代码 gt CurrentDate lt Sys Date gt Week Number lt format CurrentDate format U gt Week Number 3
  • 如何从 R 读取 PDF 元数据

    我们很好奇 有没有一种方法可以从 R 读取 PDF 元数据 例如下面显示的信息 通过搜索我对此无能为力 r pdf metadata在当前的问题库中 非常欢迎任何指点 我想不出纯 R 的方法来执行此操作 但您可能可以安装您最喜欢的 PDF
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • applyStrategy 错误

    我是R新手 最近运行后遇到以下错误applyStrategy函数来自quantstrat包裹 Error in eval expr envir enclos object signal not found Error in colnames
  • 无法更改 RStudio 中的 R 版本

    我的 RStudio V 0 99 491 无法更改 R 版本 我以平常的方式行事Global Options gt R Version 然后它挂起并且不再工作或反应 R 运行良好的初始版本是R 3 1 0 我以前从未遇到过这样的问题 也许
  • 如何修复 R 中 Kaplan Meier 图的风险表计算错误

    以下是一个数据帧 其中 6 个参与者中的每一个都有唯一的 record ID 我想绘制一个生存分析图 其中包含感兴趣事件的复发以及在时间间隔 tstart 到 tstop 内 暴露 药物剂量 数值变量 的时间依赖性协变量 每个参与者的最大
  • 在 Shiny 中的用户会话之间共享反应数据集

    我有一个相当大的反应数据集 该数据集是通过轮询文件然后按预定义的时间间隔读取该文件而派生的 数据更新频繁 需要不断重新加载 诚然 重新加载可以增量完成并附加到 R 中的现有对象 但事实并非如此 然而目前 尽管会话中的数据相同 但此操作是针对
  • 如何使用 dplyr 独立过滤每列的行

    我有以下内容 library tidyverse df lt tibble tribble gene colB colC a 1 2 b 2 3 c 3 4 d 1 1 df gt A tibble 4 x 3 gt gene colB c

随机推荐

  • NSOpenPanel 作为工作表

    我环顾四周的其他答案 但似乎没有什么可以帮助我的情况 我有一个 viewController 类 其中包含按钮的 IBAction 此按钮应该从该 viewController 打开一个 NSOpenPanel 作为工作表 class Vi
  • Angular 在父组件嵌套表单中使用子组件表单

    将子组件表单放入父组件表单的最佳方法是什么 我们使用的是2019年最新的Angular 8 经过研究 以下方法并不完全有效 父组件 ngOnInit this parentForm this fb group childForm1 etc
  • 我可以在过程中传递游标吗?

    我可以在过程中传递游标吗 CURSOR BLT CURSOR IS SELECT BLT sol id BLT bill id BLT bank id FROM BLT 是我的光标 Procedure abc i want to pass
  • 括号组合的时间复杂度

    我尝试做经典问题来实现一种算法来打印 n 对括号的所有有效组合 我找到了这个程序 效果很好 public static void addParen ArrayList
  • 您可以在网页上将图片相互叠加吗?

    我想建立一个 装扮 游戏网站 您可以单击不同的配件 它们将彼此叠加 因为描述起来有点困难 我找到了这些例子 希望能够突出我正在尝试做的事情 这是我找到的最接近的网站 但我似乎找不到计算图像应如何彼此重叠的代码 类似于这个 iOS 公主游戏
  • 在 Maven 中测试 Clojure

    我是 Maven 的新手 甚至是 Clojure 的新手 作为学习语言的练习 我正在编写一个蜘蛛纸牌播放器程序 我还计划在 Scala 中编写一个类似的程序来比较实现 请参阅我的帖子https stackoverflow com quest
  • ggplot - 按函数输出分面

    我不确定如何通过数据中的函数进行分面data的元素ggplot目的 在下面的玩具示例中 我想做的是这样的 df lt data frame x 1 8 y runif 8 z 8 1 ggplot df aes x x y y geom p
  • 使用 SQL Server XML 数据类型

    我有一个包含 XML 字段的表 它包含的典型 XML 是
  • 如何将 Nuget 包 dll 添加到 Wix 安装程序

    如何将 Nuget 包 dll 添加到 Wix 安装程序 我尝试添加
  • Android:从电话号码中检索联系人姓名

    我想检索与来电号码关联的联系人姓名 当我处理广播接收器中的传入号码时 具有带有来电呼叫者姓名的字符串将极大地帮助我的项目 我认为这涉及使用 sql WHERE 子句作为过滤器的查询 但我需要对联系人进行排序吗 一个例子或提示会有很大的帮助
  • 如何在android中的其他视图上添加覆盖视图?

    我想将按钮放在图像视图上方 我怎样才能做到这一点 请不要提供设置背景 因为我需要 ImageView 设置为背景 开玩笑 你需要的是把你的观点放在一个RelativeLayout 类似的东西会起作用
  • Python Excel 模板读取和重写,维护公式和格式

    我已经查遍了所有内容 但似乎找不到我要找的东西 我在这里找到的所有线索对我来说最终都陷入了死胡同 xlrd xlwt 和 xlutils 几乎可以满足我的需要 但是 基本思想是我需要使用 Python 将简单数据 字符串 写入 Excel
  • 如何在 QML 中集成 QWidget(Qt Quick 2.0)

    我已经关闭了返回 QFrame 的库 我的程序的GUI是用QML Qt Quick 2 0 开发的 我需要将 QFrame QWidget 集成到 QML 的解决方案 笔记 我找到了示例 Qt DIR Examples Qt 5 3 dec
  • Java StringTokenizer,空空标记

    我正在尝试将一个字符串拆分为 29 个标记 stringtokenizer 不会返回空标记 我尝试过 string split 但我相信我做错了什么 String strings line split 29 示例输入 10150 15 58
  • 如何将 MSpec 与 MS Build 集成?

    前几天我看了一个BDD 截屏视频 by 罗布 康纳利 在视频中他展示了如何使用MSpec 所以我下载了它并玩了一下 我现在想要的是整合MSpec使用 MS Build 但我不知道如何 我使用 TFS team build 作为我的 CI 服
  • 正则表达式撇号如何匹配?

    我想添加到此规则匹配撇号 rule re compile r lt gt 我努力了 rule re compile r lt gt 但它认为撇号是行错误 为什么 错误的出现是因为你不能直接使用单个 inside 以及同样单身的 不能在里面使
  • 具有需要存在另一个参数的可选参数

    很简单 我如何初始化params我的 Powershell 脚本的一部分 这样我就可以有一个命令行参数 例如 Get Foo foo1
  • Oracle:创建具有自动增量 id 列的视图

    我创建了一个view填充来自不同表的数据 我用了10 select statements并使用组合这些选择语句的结果UNION ALL 我想添加primary key column以我看来 因为我必须创造XML使用此中的数据的文件view
  • 如何在 C# 中对位图图像应用模糊效果? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何在不使用库的情况下在 C 中对图像应用模糊效果 更新的代码 现在更快 需要使用 UNSAFE 关键字 static void Main string args Bitmap
  • 使用单独数据帧中的值重命名列

    我有一个 tibble 其中的列名包含空格和特殊字符 这使得使用起来很麻烦 我想在处理数据时将这些列名称更改为更易于使用的名称 然后在最后将它们更改回原始名称以进行显示 理想情况下 我希望能够将其作为管道的一部分来完成 但是我还没有弄清楚如