楼主: 小小n
465 5

[问答] 如何将前两列数据分别作为行列名,将第三列的数据转化为依前两列分布的矩阵 [分享]

  • 0关注
  • 0粉丝

小学生

50%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
2.0000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
229 点
帖子
6
精华
0
在线时间
3 小时
注册时间
2018-6-22
最后登录
2019-12-12

小小n 发表于 2019-8-13 00:32:50 |显示全部楼层
有一个大的数据表,前两列分别是ID和年龄,各自都有重复值,但是放在一起是唯一识别的,第三列是我需要的信息,我想将第三列数字放在前两列构成的一个matrix里面怎么实现呢?
数据表大致如下:
ID  age  value
1   19   1
1   25   2
1   27   3
2   8    3
2   15   2
2   26   3
想实现成的样子如下:
    8  9 …… 15 16 …… 19 …… 25 26 27
ID1 NA NA…… NA NA …… 1  …… 2  NA 3
ID2 3  NA…… 2  NA …… 1  …… 2  3  NA
感谢各位大神援助
关键词:数据转化 数据表 在一起 重复值

stata SPSS
cheetahfly 在职认证  发表于 2019-8-13 08:46:55 |显示全部楼层
dplyr::spread(age, value, fill = NA)
后面转化成matrix略过
回复

使用道具 举报

5752 发表于 2019-8-13 09:02:38 |显示全部楼层
reshape2:dcast(df,id~value)
回复

使用道具 举报

小小n 发表于 2019-8-13 11:26:21 来自手机 |显示全部楼层
cheetahfly 发表于 2019-8-13 08:46
dplyr::spread(age, value, fill = NA)
后面转化成matrix略过
dplyr包里面没有找到spread这个函数诶
回复

使用道具 举报

cheetahfly 在职认证  发表于 2019-8-13 13:19:29 |显示全部楼层
小小n 发表于 2019-8-13 11:26
dplyr包里面没有找到spread这个函数诶
sorry
tidyr::spread()
回复

使用道具 举报

xujingjun 发表于 2019-8-14 09:08:40 |显示全部楼层
回复

使用道具 举报

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

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

GMT+8, 2019-12-12 17:44