数据框的折叠和展开

reshape库提供了两个函数,用于数据框的折叠和展开。

什么叫折叠和展开呢,就是说数据是以列的形式还是行的形式存在。比如一个成绩数据,有两种形式:

形式A:

学号
学科
成绩
1
语文
98
1
数学
77
1
英语
89
2
语文 96
2
数学 35
2
英语 66
3
语文 67

形式B:


语文 数学 英语
1
98
77
89
2
96
35
66

melt函数用于从形式B转换为形式A。

cast函数用于从形式A转换为形式B。

例子:

现在有一个数据框,是以形式B保存的数据:

数据框的折叠和展开

X和Y共同组成主键,数据以列的形式放在三列数据区内。

用melt函数,并指定主键,

predictions <- melt(df, id.vars = c('X', 'Y'))

数据框的折叠和展开

得到的结果就是把列名也放到数据区的形式A。

相反得,用cast函数得到一个逆操作。

df2 <-cast(predictions,X+Y~variable,value="value")

数据框的折叠和展开

结果可能和df之前的数据顺序不一样,但内容是一样的。

你可能感兴趣的:(数据框的折叠和展开)