全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6559 6
2016-09-26
悬赏 5 个论坛币 已解决
大家好,我问一个问题,我的数据比较多,先用个简单的代码来描述我的需求:
复制代码
得到的结果如下:
复制代码
我的问题,怎么由对象b,得到对象a

十分感谢。



最佳答案

不懂不装懂 查看完整内容

> library(reshape2) > a a num ani dam b1 b2 b3 b4 1 1 a x 33 44 45 55 2 2 b y 44 33 33 66 3 3 c z 66 22 55 77 > b b num ani dam variable value 1 1 a x b1 33 2 2 b y b1 44 3 3 c z b1 66 4 1 a x b2 44 5 2 b y b2 33 6 3 c z b2 22 7 1 a x b3 45 8 2 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2016-9-26 19:27:27
> library(reshape2)
> a <- data.frame(num=c(1,2,3),
+                 ani=c("a","b","c")
+                 ,dam= c("x","y","z"),
+                 b1=c(33,44,66),
+                 b2=c(44,33,22),
+                 b3=c(45,33,55),
+                 b4=c(55,66,77))
> a
  num ani dam b1 b2 b3 b4
1   1   a   x 33 44 45 55
2   2   b   y 44 33 33 66
3   3   c   z 66 22 55 77
> b <- melt(a,id=c("num","ani","dam"))
> b
   num ani dam variable value
1    1   a   x       b1    33
2    2   b   y       b1    44
3    3   c   z       b1    66
4    1   a   x       b2    44
5    2   b   y       b2    33
6    3   c   z       b2    22
7    1   a   x       b3    45
8    2   b   y       b3    33
9    3   c   z       b3    55
10   1   a   x       b4    55
11   2   b   y       b4    66
12   3   c   z       b4    77
> a1<-dcast(b,num+ani+dam~variable)
> a1
  num ani dam b1 b2 b3 b4
1   1   a   x 33 44 45 55
2   2   b   y 44 33 33 66
3   3   c   z 66 22 55 77
二维码

扫码加我 拉你入群

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

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

2016-9-26 20:07:16
tidyr::spread
二维码

扫码加我 拉你入群

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

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

2016-9-26 20:08:02
dcast()
二维码

扫码加我 拉你入群

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

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

2016-9-26 20:09:48
万人往LVR 发表于 2016-9-26 20:07
tidyr::spread
这个更好
二维码

扫码加我 拉你入群

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

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

2016-9-26 21:12:54
不懂不装懂 发表于 2016-9-26 19:27
> library(reshape2)
> a  a
  num ani dam b1 b2 b3 b4
thank you,记得有这个函数,具体忘了,多谢解答
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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