日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

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

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

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

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

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

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

另外,melt函數(shù)的難點(diǎn)在于,不同數(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"))

對(duì)融合后的每個(gè)變量進(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

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

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

melt(shuju)

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

總結(jié)

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

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