R语言中dcast 和 melt的使用方法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"R语言中dcast 和 melt的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所
千家信息网最后更新 2025年12月02日R语言中dcast 和 melt的使用方法
本篇内容介绍了"R语言中dcast 和 melt的使用方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1. 图片说明

2. 例子
示例数据:
set.seed(123)
dat = data.frame(ID = paste0("ID_",1:10),y1 = rnorm(10),y2=rnorm(10),y3=rnorm(10),y4 = rnorm(10))
dat结果
> dat
ID y1 y2 y3 y4
1 ID_1 -0.56047565 1.2240818 -1.0678237 0.42646422
2 ID_2 -0.23017749 0.3598138 -0.2179749 -0.29507148
3 ID_3 1.55870831 0.4007715 -1.0260044 0.89512566
4 ID_4 0.07050839 0.1106827 -0.7288912 0.87813349
5 ID_5 0.12928774 -0.5558411 -0.6250393 0.82158108
6 ID_6 1.71506499 1.7869131 -1.6866933 0.68864025
7 ID_7 0.46091621 0.4978505 0.8377870 0.55391765
8 ID_8 -1.26506123 -1.9666172 0.1533731 -0.06191171
9 ID_9 -0.68685285 0.7013559 -1.1381369 -0.30596266
10 ID_10 -0.44566197 -0.4727914 1.2538149 -0.380471003. 变为三列:ID,trait,y
melt 代码
re1 = melt(data = dat,id.vars=c("ID"),variable.name="Loc",value.name="y")
head(re1)结果预览
> head(re1)
ID Loc y
1 ID_1 y1 -0.56047565
2 ID_2 y1 -0.23017749
3 ID_3 y1 1.55870831
4 ID_4 y1 0.07050839
5 ID_5 y1 0.12928774
6 ID_6 y1 1.715064994. dcast代码
dcast(data=re1,ID ~Loc)
结果
> dcast(data=re1,ID ~Loc)
Using 'y' as value column. Use 'value.var' to override
ID y1 y2 y3 y4
1 ID_1 -0.56047565 1.2240818 -1.0678237 0.42646422
2 ID_10 -0.44566197 -0.4727914 1.2538149 -0.38047100
3 ID_2 -0.23017749 0.3598138 -0.2179749 -0.29507148
4 ID_3 1.55870831 0.4007715 -1.0260044 0.89512566
5 ID_4 0.07050839 0.1106827 -0.7288912 0.87813349
6 ID_5 0.12928774 -0.5558411 -0.6250393 0.82158108
7 ID_6 1.71506499 1.7869131 -1.6866933 0.68864025
8 ID_7 0.46091621 0.4978505 0.8377870 0.55391765
9 ID_8 -1.26506123 -1.9666172 0.1533731 -0.06191171
10 ID_9 -0.68685285 0.7013559 -1.1381369 -0.305962665.命令解析
melt是融合的意思,将宽的数据,变为长的数据。比如在田间数据中,ID,Loc,rep1, rep2, re3,这里的rep1,rep2,rep3是重复1,2,3的值,需要将数据变为:ID,Loc,Rep,y四列的数据。这样就可以用melt命令
melt(dat,c("ID","Loc"))> ex1 = data.frame(Cul = rep(1:10,2),Loc=rep(1:2,each=10),rep1=rnorm(20),rep2=rnorm(20),rep3=rnorm(20))
> head(ex1)
Cul Loc rep1 rep2 rep3
1 1 1 -0.71040656 0.1176466 0.7017843
2 2 1 0.25688371 -0.9474746 -0.2621975
3 3 1 -0.24669188 -0.4905574 -1.5721442
4 4 1 -0.34754260 -0.2560922 -1.5146677
5 5 1 -0.95161857 1.8438620 -1.6015362
6 6 1 -0.04502772 -0.6519499 -0.5309065> ex1_re = melt(ex1,c("Cul","Loc"))
> head(ex1_re)
Cul Loc variable value
1 1 1 rep1 -0.71040656
2 2 1 rep1 0.25688371
3 3 1 rep1 -0.24669188
4 4 1 rep1 -0.34754260
5 5 1 rep1 -0.95161857
6 6 1 rep1 -0.04502772dcast是长数据,变宽数据,因此
ex1_re如果想要变回去,用dcast(ex1_re, Cul + Loc ~ variable),~号左边是保持不变的列名,~右边是需要扩展的列名, 省略的value是需要填充的数据。
> dcast(ex1_re,Cul+Loc~variable)
Cul Loc rep1 rep2 rep3
1 1 1 -0.71040656 0.11764660 0.7017843
2 1 2 -0.57534696 1.44455086 0.7877388
3 2 1 0.25688371 -0.94747461 -0.2621975
4 2 2 0.60796432 0.45150405 0.7690422
5 3 1 -0.24669188 -0.49055744 -1.5721442
6 3 2 -1.61788271 0.04123292 0.3322026
7 4 1 -0.34754260 -0.25609219 -1.5146677
8 4 2 -0.05556197 -0.42249683 -1.0083766
9 5 1 -0.95161857 1.84386201 -1.6015362
10 5 2 0.51940720 -2.05324722 -0.1194526
11 6 1 -0.04502772 -0.65194990 -0.5309065
12 6 2 0.30115336 1.13133721 -0.2803953
13 7 1 -0.78490447 0.23538657 -1.4617556
14 7 2 0.10567619 -1.46064007 0.5629895
15 8 1 -1.66794194 0.07796085 0.6879168
16 8 2 -0.64070601 0.73994751 -0.3724388
17 9 1 -0.38022652 -0.96185663 2.1001089
18 9 2 -0.84970435 1.90910357 0.9769734
19 10 1 0.91899661 -0.07130809 -1.2870305"R语言中dcast 和 melt的使用方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
数据
结果
使用方法
方法
语言
代码
内容
命令
更多
知识
实用
学有所成
接下来
例子
右边
困境
图片
实际
情况
意思
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
风暴英雄美服切换服务器
肇庆无限软件开发价格
dhcp服务器配置位置选择
海康威视服务器电源适配器
软件开发模拟商务谈判剧本
据此创建数据库表 命令行
服务器市场前景
网络技术 外快
sybase 内存数据库
幼儿园网络安全官制度
网络技术学校是什么
南京福元互联网科技有限公司
网络安全攻击和破坏
音乐教育软件开发
华仪软件开发
欧盟网络安全法实施时间
国产网络安全产品有哪些
网络安全防疫码
移动网络技术发展
用无线网登录软件显示服务器异常
阿里云服务器添加角色
阿里云李飞飞内存数据库
公司数据库一般做什么
地图轨迹存储数据库选择
汽车网络安全风险来源
登录服务器显示pc登录怎么回事
sybase 内存数据库
十大软件开发费用
镇政府数据库管理员
dayz服务器怎么加管理