vlambda博客
学习文章列表

R语言统计(01)——行(短)数据转为列(长)数据

对于科研人员来说,将科研数据进行转置变换是很有必要的,但是有时候需要的不单单是将数据进行转置(如下图数据:从a1~a20共20列OTU数据;从b1~b20共20行样本数据),还有需要将一行数据(b1)分别与20列数据(a1~a20)对应起来。若只是用人工排列的话,不仅时间上耗费较多,而且容易出错。而“ data.table 包的melt () 完美高效地解决了这一问题,下面,我们将以该方法演示一下如何将行数据转换为列数据

图1  “data_table.csv 数据集概览。
数据说明:试验数据来自自编数据集“data_table.csv”,共21行21列。数据详情见图1。
代码如下:
#install.packages('data.table')#未安装该包的需要事先安装data.table包;library(data.table)#打开data.table包;ex_data <- read.csv('data_table.csv', header = TRUE)#打开目标文件‘data_table.csv’文件;tr_data <- melt(ex_data, id.vars='OTU')#利用melt()函数进行数据转换;id.wars定义不变的列;head(tr_data)#查看输出的已经转换过的文件‘tr_data’
转换过后的‘tr_data’部分如图2所示:

图2 转置后的数据
希望对你有所帮助!