日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

reshape2 数据操作 数据融合 (melt)

發(fā)布時間:2023/12/24 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 reshape2 数据操作 数据融合 (melt) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前面一篇講了cast,想必已經(jīng)見識到了reshape2的強(qiáng)大,當(dāng)然在使用cast時配合上melt這種強(qiáng)大的揉數(shù)據(jù)能力才能表現(xiàn)的淋漓盡致。

下面我們來看下,melt這個函數(shù)以及它的特點。

melt(data, ..., na.rm = FALSE, value.name = "value")

從這里來看函數(shù)的參數(shù)也相對比較簡單,data表示要處理的數(shù)據(jù),na.rm表示缺失值處理辦法,value.name用于重命名值所在列的名稱

另外,melt函數(shù)的難點在于,不同數(shù)據(jù)結(jié)構(gòu),用到的參數(shù)可能是不一樣的。

首先,要融合的數(shù)據(jù)為數(shù)組、表以及矩陣,那么melt的表達(dá)式為:

melt(data, varnames = names(dimnames(data)), ..., na.rm = FALSE, as.is = FALSE, value.name = "value")

varnames用戶命名變量名稱

其次,要融合的數(shù)據(jù)為數(shù)據(jù)框,那么melt的表達(dá)式為:

melt(data, id.vars, measure.vars, variable.name = "variable", ..., na.rm = FALSE, value.name = "value", factorsAsStrings = TRUE)

id.vars 設(shè)置融合后單獨(dú)顯示的變量,可以用變量位置及名稱表示,沒寫表示使用所有非measure.vars值

measure.vars 通常根據(jù)id.vars 設(shè)置的變化而變化

最后,要融合的數(shù)據(jù)為列表,那么melt的表達(dá)式為:

melt(data, ..., level = 1)

下面來看些具體的例子

data<- array(c(1:22, NA,"wo"), c(2,3,4))
data

melt(data)

可以看出數(shù)據(jù)融合后,可讀性比數(shù)組的情況下強(qiáng)了好多,var1表示數(shù)組的行,var2表示數(shù)組的列,var3表示數(shù)組序列。

比如,18位置就是第3數(shù)組,2行3列的位置,11則是第2數(shù)組,1行3列。

melt(a, na.rm = TRUE)

可以看到數(shù)組中的缺失值被移除了。

melt(data, varnames=c("hang","lie","Zu"))

對融合后的每個變量進(jìn)行重命名。

下面來看下數(shù)據(jù)為數(shù)據(jù)框的情況。

x<-data.frame(id=1:6,
              name=c("wang","zhang","li","chen","zhao","song"),
              shuxue=c(89,85,68,79,96,53),
              yuwen=c(77,68,86,87,92,63))
x

melt(x,id=c("id","name"))

 

melt(x,id=1:2,variable.name="kemu",value.name="zhi")

melt(x,measure.vars=c("id","name"))

最后,來看下如果數(shù)據(jù)是列表的情況

shuju<- list(matrix(1:4, ncol=2), array(1:27, c(3,3,3)))
shuju

這個列表的機(jī)構(gòu)比較復(fù)雜,讀起來有點難度

下面melt融合后的結(jié)果

melt(shuju)

可以看出數(shù)據(jù)變得非常簡潔。

總結(jié)

以上是生活随笔為你收集整理的reshape2 数据操作 数据融合 (melt)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。