楼主: playmore
4747 5

[问答] 请问在R中如何编写和SAS中的Proc transpose等价的函数 [推广有奖]

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16309 个
通用积分
7.1397
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1331 小时
注册时间
2007-1-11
最后登录
2023-12-15

初级学术勋章 初级热心勋章 中级热心勋章

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在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)重组下该怎么设置?
二维码

扫码加我 拉你入群

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

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

关键词:Transpose Trans pose ROC POS 如何

本帖被以下文库推荐

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛
沙发
complicated 在职认证  发表于 2014-7-1 15:50:40 |只看作者 |坛友微信交流群
reshape2包里面的dcast应该行
dcast( data , date ~ code , value.var="value", fill=0)
我也是在版上刚学到的
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
playmore + 5 + 5 + 5 观点有启发

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

使用道具

藤椅
panxinfeng 发表于 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

使用道具

板凳
playmore 发表于 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就完了

使用道具

报纸
complicated 在职认证  发表于 2014-7-2 11:38:34 |只看作者 |坛友微信交流群
playmore 发表于 2014-7-2 10:20
多谢!
原来不用melt,直接cast就完了
嗯嗯,不客气
他们对于数据ETL有一套玄奥的大一统方法论叫 Split-Apply-Combine
我到现在还不理解melt算啥,cast算啥~~~

使用道具

地板
syfzxy 发表于 2016-1-18 11:12:27 |只看作者 |坛友微信交流群
学习了

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 07:46