数据框的折叠和展开

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保存的数据:

153708_zT6w_1580194.png

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

用melt函数,并指定主键,

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

154042_PB46_1580194.png

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

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

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

154407_l9Z8_1580194.png

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

转载于:https://my.oschina.net/piorcn/blog/335816

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值