在R中转换data.frame [英] Transforming data.frame in R
本文介绍了在R中转换data.frame的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下数据框:
foo< - data.frame(abs(cbind(rnorm(3) ,rnorm(3,mean = .8),rnorm(3,mean = .9),rnorm(3,mean = 1))))
colnames(foo)< - c(w x,y,z)
rownames(foo)< - c(n,q,r)
foo
#wxyz
#n 1.51550092 1.4337572 1.2791624 1.1771230
#q 0.09977303 0.8173761 1.6123402 0.1510737
#r 1.17083866 1.2469347 0.8712135 0.8488029
我想做的是将其更改为:
newdf
/ pre>
#1 nw 1.51550092
#2 qw 0.09977303
#3 rw 1.17083866
#4 nx 1.43375725
#5 qx 0.81737606
#6 rx 1.24693468
#7 ny 1.27916241
#8 qy 1.61234016
#9 ry 0.87121353
#10 nz 1.17712302
#11 qz 0.15107369
#12 rz 0.84880292
有什么方法?
解决方案
reshape2 ::: melt()
特别适合这种转换:
library(reshape2)
foo< - cbind(ID = rownames(foo),foo)
melt(foo)
#使用ID作为变量
#ID变量值
#1 nw 1.7337416
#2 qw 0.5890877
#3 rw 0.2245508
#4 nx 0.5237346
#5 qx 0.9320455
#6 rx 0.8156573
#7 ny 1.9287306
#8 qy 1.1604229
#9 ry 1.7631215
#10 nz 0.3591350
#11 qz 0.9740170
#12 rz 0.5621968
I have the following data frame:
foo <- data.frame( abs( cbind(rnorm(3),rnorm(3, mean=.8),rnorm(3, mean=.9),rnorm(3, mean=1)))) colnames(foo) <- c("w","x","y","z") rownames(foo) <- c("n","q","r") foo # w x y z # n 1.51550092 1.4337572 1.2791624 1.1771230 # q 0.09977303 0.8173761 1.6123402 0.1510737 # r 1.17083866 1.2469347 0.8712135 0.8488029
What I want to do is to change it into :
newdf # 1 n w 1.51550092 # 2 q w 0.09977303 # 3 r w 1.17083866 # 4 n x 1.43375725 # 5 q x 0.81737606 # 6 r x 1.24693468 # 7 n y 1.27916241 # 8 q y 1.61234016 # 9 r y 0.87121353 # 10 n z 1.17712302 # 11 q z 0.15107369 # 12 r z 0.84880292
What's the way to do it?
解决方案
reshape2:::melt()
is particularly well suited to this transformation:library(reshape2) foo <- cbind(ID=rownames(foo), foo) melt(foo) # Using ID as id variables # ID variable value # 1 n w 1.7337416 # 2 q w 0.5890877 # 3 r w 0.2245508 # 4 n x 0.5237346 # 5 q x 0.9320455 # 6 r x 0.8156573 # 7 n y 1.9287306 # 8 q y 1.1604229 # 9 r y 1.7631215 # 10 n z 0.3591350 # 11 q z 0.9740170 # 12 r z 0.5621968
这篇关于在R中转换data.frame的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文