计算分组数据中的平均值

#计算分组数据中的平均值
首先导入原始数据框(这里为txt文件),用reshape函数进行数据重构,即为宽数据转长数据过程,固定变量为重复测量最终需要计算均值的变量,比如这里的subsite列为:R1 R1 R1 R2 R2 R2……,想要的结果是R1,R2……

##计算重复样品的均值列表read.table("data.txt",header = F,sep="\t")
df <- read.table("phchsite.txt", header = T, sep = "\t",check.names = F)
#计算分组中的平均值
library(reshape2)
df_reshape <- melt(df, id.vars=c("subsite")) 
str(df_reshape)
df_reshape$subsite=as.factor(df_reshape$subsite)

重构后数据只剩下subsite,variable和value,variable是我们之前宽数据的行名称(变量),value为数值,subsite需要转换为因子变量,最后计算均值,并导出均值数据(csv格式)

df_mean <- tapply(df_reshape$value, df_reshape[,c("subsite","variable")], mean)
View(df_mean)
write.table(df_mean,"phchsite_mean1.csv",row.names = FALSE,col.names = TRUE,sep = ",")

小编发现,行列名称都为TRUE时才能导出行列名称,并且行名称会错位,目前没有找到解决办法,需要自己后期打开csv文件完善一下。

你可能感兴趣的:(python,开发语言)