热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在R中将多列转换为单行-ConvertMultipleColumnstoSingleRowinR

拥有一个包含1000个ID及其对应值的数据框时,如何有效地将两个列基于ID转换为单行?本文提供了一种利用dplyr和tidyr包实现这一目标的方法。

我目前处理的是一个包含1000个唯一ID及其相关数值的数据框。我的目标是根据每个ID将特定的两列合并成一行。虽然尝试过使用reshape包中的cast函数,但它仅能将单一列转换为行。下面是一个具体的数据示例:


DF <- data.frame(ID=c("x1","x1","x1","x1","x2","x2","x2","x2"),
name1=c("T1","T1","T2","T2","T1","T1","T2","T2"),
name2=c("C1","C2","C1","C2","C1","C2","C1","C2"),
T1_val=c(1.1,1.1,2.3,2.3,1.8,1.8,7.9,7.9),
C1_val=c(1.1,2.6,1.1,2.6,1.8,3.6,1.8,3.6))

> DF
ID name1 name2 T1_val C1_val
1 x1 T1 C1 1.1 1.1
2 x1 T1 C2 1.1 2.6
3 x1 T2 C1 2.3 1.1
4 x1 T2 C2 2.3 2.6
5 x2 T1 C1 1.8 1.8
6 x2 T1 C2 1.8 3.6
7 x2 T2 C1 7.9 1.8
8 x2 T2 C2 7.9 3.6

期望得到的结果如下所示:


ID  T1   T2   C1   C2
x1 1.1 2.3 1.1 2.6
x2 1.8 7.9 1.8 3.6

感谢您的帮助!


解决方案


通过结合使用dplyr和tidyr这两个强大的数据操作包,可以非常简便地达到上述目的。以下是具体的代码实现:


library(dplyr)
library(tidyr)

DF %>%
pivot_wider(names_from = c(name1, name2), values_from = c(T1_val, C1_val))

运行以上代码后,将会得到如下结果:


# A tibble: 2 × 5
ID T1_T1 C1_C1 T2_T2 C2_C2

1 x1 1.1 1.1 2.3 2.6
2 x2 1.8 1.8 7.9 3.6

如果您希望深入学习这两个包的更多功能,建议查阅官方文档或相关的快速参考指南。


推荐阅读
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • andr ... [详细]
  • 本文由瀚高PG实验室撰写,详细介绍了如何在PostgreSQL中创建、管理和删除模式。文章涵盖了创建模式的基本命令、public模式的特性、权限设置以及通过角色对象简化操作的方法。 ... [详细]
  • 本文详细介绍了Debian及其衍生发行版中如何通过/etc/network/interfaces文件进行网络接口的配置,对比了Red Hat系系统的不同之处,并提供了多种常见配置示例及解析。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 中科院学位论文排版指南
    随着毕业季的到来,许多即将毕业的学生开始撰写学位论文。本文介绍了使用LaTeX排版学位论文的方法,特别是针对中国科学院大学研究生学位论文撰写规范指导意见的最新要求。LaTeX以其精确的控制和美观的排版效果成为许多学者的首选。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
author-avatar
hh呢喃_845
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有