使用tidyr包在R语言环境中实现宽表格转换为长表格
- 看不见的线
- 1267
- 2024-03-19 17:13:15
- 原创
什么是宽表格和长表格?
在数据分析中,我们通常会遇到两种类型的数据表格:宽表格和长表格。
宽表格是指每一列代表一个变量,每一行代表一个观察值的数据表格。宽表格的形式适合展示多个变量之间的关系,但在某些情况下,数据的分析和可视化可能更为困难,因为变量信息被分散在不同的列中。
以下是一个示例的宽表格:
Phylum | Sample1 | Sample2 | Sample3 | Sample4 | Sample5 | Sample6 | Sample7 | Sample8 | Sample9 |
Asgardarchaeota | 9.44 | 9.77 | 11.56 | 10.07 | 10.13 | 11.25 | 10.26 | 10.01 | 9.65 |
Thaumarchaeota | 4.28 | 4.25 | 4.06 | 3.95 | 4.56 | 9.93 | 8.83 | 9.37 | 9.97 |
Euryarchaeota | 8.07 | 9.97 | 9.97 | 8.48 | 10.79 | 9.27 | 8.46 | 9.31 | 10.12 |
Iainarchaeota | 8.99 | 9.21 | 10.3 | 11.64 | 11.08 | 17 | 16.96 | 17.98 | 17.87 |
Nanoarchaeota | 21.62 | 20.24 | 21.85 | 20.25 | 21.63 | 18.25 | 19.68 | 20.85 | 20.35 |
Acidobacteriota | 11.72 | 10.46 | 8.73 | 9.31 | 9.55 | 14.95 | 14.22 | 13.33 | 14.62 |
相比之下,长表格是指变量和观察值分别存储在不同的列中的数据表格。通常,长表格的形式更适合用于数据分析,因为它能够更容易地进行数据重塑和处理。长表格的优势在于变量和值的对应关系更为清晰,有助于某些统计和可视化分析。
以下是将上述宽表格转换为长表格后的示例:
Phylum | Sample | Value |
Asgardarchaeota | Sample1 | 9.44 |
Asgardarchaeota | Sample2 | 9.77 |
Asgardarchaeota | Sample3 | 11.56 |
Asgardarchaeota | Sample4 | 10.07 |
Asgardarchaeota | Sample5 | 10.13 |
Asgardarchaeota | Sample6 | 11.25 |
Asgardarchaeota | Sample7 | 10.26 |
Asgardarchaeota | Sample8 | 10.01 |
Asgardarchaeota | Sample9 | 9.65 |
Thaumarchaeota | Sample1 | 4.28 |
Thaumarchaeota | Sample2 | 4.25 |
…… | …… | …… |
使用tidyr包进行转换
要将宽表格转换为长表格,我们可以使用R语言中的tidyr包。tidyr包提供了一系列函数,可以帮助我们完成这个任务。
安装和加载tidyr包
首先,我们需要安装tidyr包。在R语言环境中,可以通过以下命令来安装:
install.packages("tidyr")
安装完毕后,我们可以使用以下命令来加载tidyr包:
library(tidyr)
使用pivot_longer函数
在tidyr包中,pivot_longer函数用于将宽表格转换为长表格。下面是pivot_longer函数的基本语法:
pivot_longer(data, cols, names_to, values_to)
其中:
data是要转换的数据表格;
cols是要转换的列;
names_to是指定转换后的变量名称存储的列;
values_to是指定转换后的观察值存储的列。
以下是一个示例代码,演示如何使用pivot_longer函数将上述宽表格转换为长表格:
#加载tidyr包
library(tidyr)
#创建示例宽表格
wide_table <- data.frame(
Phylum = c("Asgardarchaeota", "Thaumarchaeota", "Euryarchaeota", "Iainarchaeota", "Nanoarchaeota", "Acidobacteriota"),
Sample1 = c(9.44, 4.28, 8.07, 8.99, 21.62, 11.72),
Sample2 = c(9.77, 4.25, 9.97, 9.21, 20.24, 10.46),
Sample3 = c(11.56, 4.06, 9.97, 10.3, 21.85, 8.73),
Sample4 = c(10.07, 3.95, 8.48, 11.64, 20.25, 9.31),
Sample5 = c(10.13, 4.56, 10.79, 11.08, 21.63, 9.55),
Sample6 = c(11.25, 9.93, 9.27, 17, 18.25, 14.95),
Sample7 = c(10.26, 8.83, 8.46, 16.96, 19.68, 14.22),
Sample8 = c(10.01, 9.37, 9.31, 17.98, 20.85, 13.33),
Sample9 = c(9.65, 9.97, 10.12, 17.87, 20.35, 14.62)
)
#使用pivot_longer函数转换为长表格
long_table <- pivot_longer(wide_table, cols = -Phylum,
names_to = "Sample", values_to = "Value")
#输出转换后的长表格
long_table
执行以上代码,我们可以得到如上所示的长表格。
在本文中,我们介绍了如何使用R语言中的tidyr包来将宽表格转换为长表格。通过使用pivot_longer函数,我们可以轻松地完成这个任务。长表格对于数据分析和可视化非常有用,因为它更容易处理和展示数据。希望这篇文章对大家有所帮助!
推荐课程
【课程】微生物比较基因组精品系列课——全套自学必入的系统课程
课程链接:微生物比较基因组精品系列课【全套】
【课程】铜绿假单胞菌基因组研究和分子分型实战
课程链接:铜绿假单胞菌基因组研究和分子分型实战
【课程】微生物比较基因组与群体进化——基因组变异专题研究
课程链接:微生物比较基因组与群体进化
【课程】微生物分子分型-MLST课程——分型全套(含理论、软件、方法)
课程链接:微生物分子分型-MLST课程
【课程】基因组结构分析神器Easyfig实操精品课
【课程】BRIG绘图——结构比较专题2
【课程】肺炎克雷伯菌基因组学研究综合指南
课程链接:肺炎克雷伯菌基因组学研究综合指南
【课程】微生物基因组生信必学课程
课程链接:微生物基因组生信分析必学课程
【课程】微生物生防菌研究
课程链接:生防菌的系统化研究
专题材料
【资料】耐药专题材料
【资料】生防专题材料
请添加唯那生物技术客服小唯的微信号winnerbio01,备注“耐药专题”或“生防专题”,立马获取。
更多专题推荐
1、生信技能课专辑
2、耐药毒力专题
3、肺炎克雷伯菌专题
4、密码子偏好性专题
7、软件脚本分享
9、知识干货
10、分泌系统
11、软件下载
12、书籍下载
-
点赞 (0人)
- 收藏 (0人)