全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5186 5
2014-07-01
在SAS中有一个Proc transpose,可以把一张表转为任意的形式,该过程中最主要的三组参数是by,id和var,其中,by是结果表中的行变量,id是结果表中的列变量,var是结果表中填到指定行和列中的变量。举个例子,我现在有下面的表格

Code  Date     Value
a   2012-1-1  0.43234
a   2012-1-2  0.34333
...
b   2012-1-1  0.32435
b   2012-1-2  0.85346

我想得到如下的表格
Date          a             b
2012-1-1     0.43234      0.32435
2012-1-2     0.34333      0.85346

在SAS里,只要设by为Date,id为Code,var为Value,然后用Proc transpose就可以了。

在R里,需要用什么办法?谢谢!

另外,我这个要求好像用reshape2没法实现?
我用了reshape函数,可以实现了,只不过必须要设置direction为wide或long?如果我的表格又不wide又不long,只是想抽其中三个变量(分别对应by,id和var)重组下该怎么设置?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-7-1 15:50:40
reshape2包里面的dcast应该行
dcast( data , date ~ code , value.var="value", fill=0)
我也是在版上刚学到的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-1 22:06:02
> d
   code data       value
1     a    x -1.78013434
2     a    x  1.42402019
3     a    x -1.05654961
4     a    y -1.59908523
5     a    y  0.20033820
6     a    y  1.38184238
7     a    y -0.89471926
8     a    y  1.41308378
9     a    y  1.82369619
10    a    y  1.48592199
11    b    y -0.67211598
12    b    y  0.69786025
13    b    y -1.65981950
14    b    y  0.53263579
15    b    x  0.31411633
16    b    x  1.17634435
17    b    x  0.66776021
18    b    x -0.55216292
19    b    x  0.07647722
20    b    x -0.27632592
21    b    x  0.81473166
22    b    x -0.73911609
23    b    x  1.55614728
24    b    y  0.83645451
25    b    y  0.32174447

> dcast(d, data~code, mean)
  data          a           b
1    x -0.4708879 0.337552459
2    y  0.5444397 0.009459924
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-2 10:20:04
complicated 发表于 2014-7-1 15:50
reshape2包里面的dcast应该行
dcast( data , date ~ code , value.var="value", fill=0)
我也是在版上刚学 ...
多谢!
原来不用melt,直接cast就完了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-7-2 11:38:34
playmore 发表于 2014-7-2 10:20
多谢!
原来不用melt,直接cast就完了
嗯嗯,不客气
他们对于数据ETL有一套玄奥的大一统方法论叫 Split-Apply-Combine
我到现在还不理解melt算啥,cast算啥~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-1-18 11:12:27
学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群