小技巧2-melt()函數(shù)轉換(R)

我們常見的數(shù)據(jù)一般長這樣:

image.png

作圖時常用的形式是這樣:(這個就是melt型數(shù)據(jù))
image.png

圖片來源:[pandas]處理pcr數(shù)據(jù)的時候,melt真是好東西呀 - 路人乙小明的文章 - 知乎
https://zhuanlan.zhihu.com/p/58474925

ggplot2常用melt型數(shù)據(jù),excel里手動進行轉換很麻煩
使用reshape2包里的melt()函數(shù)就很方便了

melt()函數(shù)

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:新列對應值所在的變量名

變換需指定哪些數(shù)據(jù)是id variables,哪些是measured variables

舉例1:

plot.png

library(reshape2)
# ggplot2常用melt型數(shù)據(jù)
#使用σf作為數(shù)值一列所在列名
plot_melt = melt(plot, value.name = "σf")

注意!這里沒有指定id.varsmeasure.vars,所以默認了第一列為id.vars(不做變動的列),其余所有列都作為measure.vars(需要melt轉換的列)

plot_melt.png

如果是復雜一些的表格,則必須明確指出id.varsmeasure.vars
舉例2:
這里 "Time[s]" 和 "Temperature[C]" 兩列是想要固定不變的列,后三列為3次重復實驗的數(shù)據(jù),需要轉換為melt格式

plot2.png

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后得到的數(shù)據(jù)如下:


plot2_melt.png

“小技巧”系列是我在實際使用中遇到的,又容易忘記的小知識點。記錄下來,分享的同時,以備自己查詢

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容