使用reshape2 R包进行在线长数据和宽数据相互转化

news2024/11/24 5:09:23

                

 数据是数据分析的基础。我们常见的数据一般存储在excel表格,或者txt文档中。今天我们来看看长数据和宽数据,以及如何进行两者之间的相互转换。

1.宽数据和长数据

宽数据

如图1所示,宽数据是我们最常见的数据存储形式,其中行是基因,列是样品,行和列的交叉点,就是某个基因在某个样品中的表达值。宽数据一般至少4列,并且第一列和第一行是唯一的。

                                                             图1. 宽数据示例

长数据

如图2所示,长数据中第一列是基因,第二列是样品,第三列是表达值。这种存储数据的格式带有冗余性,例如基因和样品都有重复。形如一个很窄,很长(高)的长方形。

                                                

                                                               图2. 长数据示例

长数据是根据[基因行,样品列]的交叉点坐标取数据,然后按照从上到下,从左到右的顺序把基因、样品、表达值拎出来,重写宽数据。也就是将矩阵形式的数据“扁平化”,两者所描述的内容是一样的。一般来说,宽数据更符合人们的阅读习惯,并且更加紧凑,而长数据则更容易进行数据处理和可视化。

2.编程语言中的宽数据和长数据转换

由于不同的软件可能需要不同的数据输入形式,因此,宽数据和长数据的相互转换是日常数据处理必备的技巧。

在R语言中

1)reshape2

melt函数将宽数据“熔化”melt成长数据

dcast函数将长数据“铸造”cast成宽数据

2)tidyr

spread函数将宽数据“展开”spread成长数据

gather函数将长数据“聚集”gather成宽数据

在python语言中

pandas包的melt函数将宽数据“熔化”成长数据

pandas包的pivot_table函数将长数据“透视汇总”成宽数据表

3.微生信在线长宽数据相互转换

3.1 打开转换页面

首先,使用浏览器(推荐chrome或者edge)打开长数据-宽数据相互转换页面。

微生信-在线长数据、宽数据表格相互转换

左侧为常见作图导航,中间为数据输入框和可选参数,右侧为描述和结果示例。

                                                                  图3. 数据转换页面

3.2 示例数据

点击右侧“示例数据”链接下载excel格式的示例数据。这里以宽数据转长数据为例。

                                                                   图4. 宽数据示例

宽数据为矩阵形式,行是基因,列是样品。其中第一列为gene_id,其余列为样品。

3.3 粘贴宽数据

拷贝示例数据中的宽数据,粘贴到输入框。数据少时直接粘贴,数据较大时,可以上传制表符分割的txt文件。

                               

                                                                     图5. 粘贴宽数据

注意:不是拷贝excel文件,是拷贝excel文件里边的数据。另外粘贴到输入框后,格式乱了没关系,只要在excel中是整齐的就行。同时数据矩阵中不能有空的单元格,中文字符等。

3.4 设置参数

由于宽数据转长数据时,需要指定第2列变量和第3列的值名字,因此这里需要我们输入两个名字。

 

6.变量参数

3.5  提交获得结果

粘贴好输入数据,提交后,即可下载转换后的结果。

7.结果下载

结果说明

                                                   

图8. 长数据结果

第一列是基因,第二列是样品,第三列是表达值

长数据转宽数据类似。

注意:1,长数据不是宽数据的简单转置,而是根据变量提取数据,所以长数据中的一行至少有3个值,变量1,变量2,变量1 vs 变量2对应的值。作为简单转换页面,默认3列为长数据,超过3列的为宽数据,即仅能转换二维数据。如需更复杂的转换,请使用相应的函数。

2,宽数据转长数据时不会有数据丢失,而长数据转宽数据时,若数据有缺失,则相应宽数据中以NA填补。

微生信助力高分文章,用户62000+,引用800+

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/66557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django校园订餐管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

nginx配置文件组成

1.配置文件的组成 ​ 配置文件由全局块events块http块组成 1.1 全局块 ​ 从配置文件开始到events之间的内容,主要会设置一些影响Nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组)、允许生成的worker process数,进程pid…

Java数据结构与Java算法学习Day06---堆(简略笔记记录)

目录 一、堆 96 1.1堆的定义 96 1.2堆的API设计 97 1.3堆---堆的插入方法 98 1.4堆---堆的删除最大元素方法 99 1.5堆---堆的测试 100 二、堆排序 101 2.1堆排序 101 一、堆 96 1.1堆的定义 96 堆实际上也是利用数据结构实现的,用树实现的特殊结构&…

(mac M1)Flutter环境搭建

下载Flutter SDK,需要科学上网。 将Flutter永久添加到PATH中 1 sudo vim ~/.bash_profile 打开文件 2 export PATHpwd/flutter/bin:$PATH 将这个添加到前几行环境变量设置中 3 :wq 退出vim 4 source ~/.bash_profile 配置马上生效命令 运行 flutter doctor 命令&a…

【Linux】yum的介绍和使用

本期主题:yum介绍和使用博客主页:小峰同学分享小编的在Linux中学习到的知识和遇到的问题小编的能力有限,出现错误希望大家不吝赐作为程序员,不会有人还没女朋友吧。 目录 🍁1.软件包是什么? 🍁…

[附源码]Python计算机毕业设计Django小型银行管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Qwt开发笔记(二):Qwt基础框架介绍、折线图介绍、折线图Demo以及代码详解

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128194710 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

单片机硬件和软件延时、RTOS相对延时和绝对延时

已剪辑自: https://mp.weixin.qq.com/s/-RPLQn4KO9Aqu1fpfZeOKA 前不久有个读者在问关于延时的问题,大概就是问:软件延时和硬件延时是啥意思?做项目时他俩有什么区别? 今天就来讲讲关于硬件延时和软件延时的内容,以及…

[GitHub]将本地文件上传远程仓库(安装,创建SSHKey,上传远程仓库)

目录 什么是GitHub 注册账户以及创建仓库 安装Git 配置Git ​编辑 将本地项目上传远程仓库 创建本地仓库 创建远程仓库 克隆远程仓库到本地 什么是GitHub github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共…

Android 动画实现 从基础到自定义

1. 基础使用 由于是继承了ValueAnimator类 所以使用的方法十分类似:XML 设置 / Java设置1.1 Java设置 ObjectAnimator animator ObjectAnimator.ofFloat(Object object, String property, float ....values); // Object object:需要操作的对象 // Str…

【SpringCloud负载均衡】【源码+图解】【二】LoadBalancer配置

【SpringCloud负载均衡】【源码图解】【一】LoadBalancer的HelloWorld体验 目录2. LoadBalancer的配置2.1 config.LoadBalancerAutoConfiguration2.2 BlockingLoadBalancerClientAutoConfiguration2.3 LoadBalancerEurekaAutoConfiguration2.4 loadbalancer.LoadBalancerAutoCo…

[附源码]Python计算机毕业设计SSM建筑材料采购管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

引擎入门 | Unity UI简介–第2部分(5)

本期我们继续为大家进行Unity UI简介(第二部分)的后续教程 本篇内容 9.设置动画对话框 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第二部分)篇幅较长,分为八篇,本篇为第五篇。 9.设置动画对…

css:css属性pointer-events实现点击穿透

文档 https://developer.mozilla.org/zh-CN/docs/Web/CSS/pointer-events pointer-events CSS 属性指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的 target 常用属性 /* Keyword values */ pointer-events: auto; /* 与pointer-events属性未指定时的表现效…

jsp+servlet+mysql实现的学生签到考勤请假管理系统源码+教程

今天给大家演示一下由jsp servlet mysql实现的一款学生签到管理系统,系统主要分管理员、学生、辅导员、教师等角色登录,实现学生发起请假、教师辅导员审批等动作,该项目不仅源码完整,还带有完整的论文文档,数据库设计说…

Linux下普通用户(非root用户)安装Java,Java程序能编译不能运行的原因

Linux下普通用户(非root用户)安装Java1. 下载2. 解压缩3. 修改环境变量4. 验证5. 第一个Java程序1. 下载 根据自己的系统,从官网上直接下载即可。本文以jdk-8u202-linux-x64.tar.gz为例。 2. 解压缩 使用以下命令解压 tar -zxvf jdk-8u2…

【Python自然语言处理+tkinter图形化界面】实现智能医疗客服问答机器人实战(附源码、数据集、演示 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、问答智能客服简介 QA问答是Question-and-Answer的缩写,根据用户提出的问题检索答案,并用用户可以理解的自然语言回答用户,问答型客服注重一问一答处理,侧重知识的推理。 …

Yolov5 中添加Network Slimming剪枝--稀疏训练部分

前言:Network Slimming剪枝过程让如下 1. 稀疏化 2. 剪枝 3. 反复迭代这个过程 一、稀疏化: 通过Network Slimming 的核心思想是:添加L1正则来约束BN层系数,从而剪掉那些贡献比较小的通道channel 原理如下:BN层的计算是这样的…