我们常见的数据一般长这样:
image.png
作图时常用的形式是这样:(这个就是melt型数据)
image.png
图片来源:[pandas]处理pcr数据的时候,melt真是好东西呀 - 路人乙小明的文章 - 知乎
https://zhuanlan.zhihu.com/p/58474925
ggplot2常用melt型数据,excel里手动进行转换很麻烦
使用reshape2包里的melt()函数就很方便了
melt()函数
melt(data,id.vars,measure.vars,variable.name=“variable”,…,na.rm=FALSE,value.name=“value”,factorsAsStrings=TRUE)
id.vars:标识变量(依旧在列上,保持不变的变量)
measure.vars:度量变量(我们想要放进同一列的变量)
variable.name:为新列取名,如果不取名,默认新增列的列名就是“variable”
value.name:新列对应值所在的变量名
变换需指定哪些数据是id variables,哪些是measured variables
举例1:
library(reshape2)
# ggplot2常用melt型数据
#使用σf作为数值一列所在列名
plot_melt = melt(plot, value.name = "σf")
注意!这里没有指定“id.vars”和“measure.vars”,所以默认了第一列为的“id.vars(不做变动的列)”,其余所有列都作为“measure.vars(需要melt转换的列)”
如果是复杂一些的表格,则必须明确指出“id.vars”或“measure.vars”:
举例2:
这里"Time[s]"和"Temperature[C]"两列是想要固定不变的列,后三列为3次重复实验的数据,需要转换为melt格式
plot2_melt= melt(plot2,
id.vars = c("Time [s]","Temperature [°C]"),
value.name = "First Derivative")
##same as:
plot2_melt= melt(plot2,
id.vars = c("Time [s]","Temperature [°C]"),
measure.vars = c("First Derivative_1","First Derivative_2","First Derivative_3"),
value.name = "First Derivative")
##只指定id.vars,其余所有列都会视为measure.vars,反之同样。
melt后得到的数据如下:
plot2_melt.png
网友评论