楼主: wencycooll
5446 7

[有偿编程] 关于R中的分组转置 [推广有奖]

  • 1关注
  • 0粉丝

等待验证会员

大专生

13%

还不是VIP/贵宾

-

威望
0
论坛币
43 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
251 点
帖子
28
精华
0
在线时间
53 小时
注册时间
2011-11-30
最后登录
2014-4-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
请问一下如何在R中进行分组转置呢,在SAS中有transpose 里面有分组的参数,直接搞定,但是R中的t(x)没有这个参数。
例如:
编码   名称      供应商111   阿莫西林   公司AAA
111   阿莫西林   公司BBB
111   阿莫西林   公司CCC
222   达克宁     公司CCC
222   达克宁     公司BBB
333   康泰克     公司BBB
444   阿莫西林1   公司AAA
444   阿莫西林1   公司BBB
444   阿莫西林1   公司CCC   

希望得到数据表B,处理结果如下:
编码   名称      供应商1      供应商2      供应商3     供应商4  ...
111   阿莫西林   公司AAA      公司BBB      公司CCC
222   达克宁     公司CCC      公司BBB
333   康泰克     公司BBB

444   阿莫西林1   公司AAA     公司BBB      公司CCC



这个我应该怎么处理才能够实现我想要的结果,请高手指点一下。



二维码

扫码加我 拉你入群

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

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

关键词:Transpose Trans 阿莫西林 高手指点 pose 阿莫西林 康泰克 达克宁 AAA444 供应商

已有 1 人评分经验 论坛币 收起 理由
李会超 + 36 + 12 热心帮助其他会员

总评分: 经验 + 36  论坛币 + 12   查看全部评分

沙发
yywan0913 在职认证  发表于 2014-4-16 17:56:59 |只看作者 |坛友微信交流群
你这个转置的结果太高级了
   还是先处理下(merge)吧。。
是什么给了你自信

使用道具

藤椅
miniwhale 发表于 2014-4-16 22:12:21 |只看作者 |坛友微信交流群
用split啊。

f=c("阿莫西林","阿莫西林","阿莫西林","达克宁","达克宁","康泰克","阿莫西林","阿莫西林","阿莫西林")
x=c("公司AAA","公司BBB","公司CCC","公司CCC","公司BBB","公司BBB","公司AAA","公司BBB","公司CCC")
split(x,f)

使用道具

板凳
playmore 发表于 2014-4-17 08:34:50 |只看作者 |坛友微信交流群
在R里没有直接和SAS的TRANSPOSE对应的函数
但有一个reshape2包,可以实现同样的功能
你可以参考下面的链接
http://www.loyhome.com/%e6%8e%a2 ... %e4%bc%b4%e4%be%a3/

你这里的问题应该用下面的代码就行了,没有试,可能有问题
data <- melt(data, id=c("编码","名称"))
dcast(data, 编码 ~ 名称 + variable)
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

报纸
wencycooll 发表于 2014-4-17 13:52:38 |只看作者 |坛友微信交流群
多谢。

使用道具

地板
zjjhuihui 发表于 2015-10-20 15:13:45 |只看作者 |坛友微信交流群
wencycooll 发表于 2014-4-17 13:52
多谢。
你好,请问您是如何解决这个问题的呢?

使用道具

7
英雄lxz 发表于 2018-11-7 09:43:02 |只看作者 |坛友微信交流群
zjjhuihui 发表于 2015-10-20 15:13
你好,请问您是如何解决这个问题的呢?
请问如果逆向操作楼主的这个例子,又该怎么弄呢

使用道具

8
hl0410 发表于 2020-6-11 10:35:49 |只看作者 |坛友微信交流群
我也遇到问题,在这记录一下解决方法,使用R包tidyr中pivot_longer()函数,里面有宽数据转长数据,也有长数据转宽数据。R包Reshape2也可以解决,但感觉比tidyr麻烦些

使用道具

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

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

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

GMT+8, 2024-4-27 13:59