示例数据
提取码:kydo
加载工具包
library(magrittr) # need to run every time you start R and want to use %>%
library(dplyr) # alternative, this also loads %>%
读入数据
map = read.table('map.txt', row.names = 1, header = T)
taxa = read.table('taxa_L2.txt', row.names = 1, header = T,sep = '\t')
taxa = t(taxa) %>% as.data.frame() #转置(行列调换)并设定数据格式为数据框
taxa = taxa[rownames(map),]#将两文件的行顺序调为一致,方便后续合并
dat = cbind(taxa,map)#按列合并两文件
dat = dat[,-8]#去除无效部分
数据按组求均值并调整数据格式
library('reshape2')
dat = aggregate(. ~ Week*Site, data = dat, mean) %>% #同时依据Week和Site两个条件求组内均值,这里我们定义Site为大组,Week为小组
melt() %>% #数据格式调整,各个变量分别成列
dcast(variable + Site ~ Week)#数据格式调整,variable和Site为行,Week为列
调整行和列的顺序,组与组之间数据不要串行
dat = dat[order(dat$Site, dat$variable,decreasing = F),c('variable','Site','W1','W2','W4','W8','W16')]
定义组,组内数据按列累加
library('dplyr')
link_dat %
group_by(Site) %>% #按大组Site进行分组,后续作图以Site进行分页展示
mutate_if(is.numeric, cumsum) %>% #判断是否为数值型变量,才执行本操作
as.data.frame()
设定组间连接线
bar.width |