R语言实战 - 高级数据管理
Posted 你的踏板车要滑向哪里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言实战 - 高级数据管理相关的知识,希望对你有一定的参考价值。
6. 整合与重构
6.1 转置
> mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21 6 160 110 3.9 2.6 16 0 1 4 4 Mazda RX4 Wag 21 6 160 110 3.9 2.9 17 0 1 4 4 Datsun 710 23 4 108 93 3.8 2.3 19 1 1 4 1 Hornet 4 Drive 21 6 258 110 3.1 3.2 19 1 0 3 1 Hornet Sportabout 19 8 360 175 3.1 3.4 17 0 0 3 2 Valiant 18 6 225 105 2.8 3.5 20 1 0 3 1 Duster 360 14 8 360 245 3.2 3.6 16 0 0 3 4 Merc 240D 24 4 147 62 3.7 3.2 20 1 0 4 2 Merc 230 23 4 141 95 3.9 3.1 23 1 0 4 2 Merc 280 19 6 168 123 3.9 3.4 18 1 0 4 4 Merc 280C 18 6 168 123 3.9 3.4 19 1 0 4 4 Merc 450SE 16 8 276 180 3.1 4.1 17 0 0 3 3 Merc 450SL 17 8 276 180 3.1 3.7 18 0 0 3 3 Merc 450SLC 15 8 276 180 3.1 3.8 18 0 0 3 3 Cadillac Fleetwood 10 8 472 205 2.9 5.2 18 0 0 3 4 Lincoln Continental 10 8 460 215 3.0 5.4 18 0 0 3 4 Chrysler Imperial 15 8 440 230 3.2 5.3 17 0 0 3 4 Fiat 128 32 4 79 66 4.1 2.2 19 1 1 4 1 Honda Civic 30 4 76 52 4.9 1.6 19 1 1 4 2 Toyota Corolla 34 4 71 65 4.2 1.8 20 1 1 4 1 Toyota Corona 22 4 120 97 3.7 2.5 20 1 0 3 1 Dodge Challenger 16 8 318 150 2.8 3.5 17 0 0 3 2 AMC Javelin 15 8 304 150 3.1 3.4 17 0 0 3 2 Camaro Z28 13 8 350 245 3.7 3.8 15 0 0 3 4 Pontiac Firebird 19 8 400 175 3.1 3.8 17 0 0 3 2 Fiat X1-9 27 4 79 66 4.1 1.9 19 1 1 4 1 Porsche 914-2 26 4 120 91 4.4 2.1 17 0 1 5 2 Lotus Europa 30 4 95 113 3.8 1.5 17 1 1 5 2 Ford Pantera L 16 8 351 264 4.2 3.2 14 0 1 5 4 Ferrari Dino 20 6 145 175 3.6 2.8 16 0 1 5 6 Maserati Bora 15 8 301 335 3.5 3.6 15 0 1 5 8 Volvo 142E 21 4 121 109 4.1 2.8 19 1 1 4 2 > > > cars <- mtcars[1:5, 1:4] > cars mpg cyl disp hp Mazda RX4 21 6 160 110 Mazda RX4 Wag 21 6 160 110 Datsun 710 23 4 108 93 Hornet 4 Drive 21 6 258 110 Hornet Sportabout 19 8 360 175 > t(cars) Mazda RX4 Mazda RX4 Wag Datsun 710 Hornet 4 Drive Hornet Sportabout mpg 21 21 23 21 19 cyl 6 6 4 6 8 disp 160 160 108 258 360 hp 110 110 93 110 175 >
6.2 整合数据
> options(digits=3) > attach(mtcars) > aggdata <- aggregate(mtcars, by=list(cyl,gear), FUN=mean, na.rm=TRUE) > aggdata Group.1 Group.2 mpg cyl disp hp drat wt qsec vs am gear carb 1 4 3 21.5 4 120 97 3.70 2.46 20.0 1.0 0.00 3 1.00 2 6 3 19.8 6 242 108 2.92 3.34 19.8 1.0 0.00 3 1.00 3 8 3 15.1 8 358 194 3.12 4.10 17.1 0.0 0.00 3 3.08 4 4 4 26.9 4 103 76 4.11 2.38 19.6 1.0 0.75 4 1.50 5 6 4 19.8 6 164 116 3.91 3.09 17.7 0.5 0.50 4 4.00 6 4 5 28.2 4 108 102 4.10 1.83 16.8 0.5 1.00 5 2.00 7 6 5 19.7 6 145 175 3.62 2.77 15.5 0.0 1.00 5 6.00 8 8 5 15.4 8 326 300 3.88 3.37 14.6 0.0 1.00 5 6.00 >
6.3 reshape包
> ID <- c(1,1,2,2) > Time <- c(1,2,1,2) > X1 <- c(5,3,6,2) > X2 <- c(6,5,1,4) > mydata <- data.frame(ID, Time, X1, X2) > mydata ID Time X1 X2 1 1 1 5 6 2 1 2 3 5 3 2 1 6 1 4 2 2 2 4
6.3.1 融合
> library(reshape) > md <- melt(mydata, id=(c("ID", "Time"))) > md ID Time variable value 1 1 1 X1 5 2 1 2 X1 3 3 2 1 X1 6 4 2 2 X1 2 5 1 1 X2 6 6 1 2 X2 5 7 2 1 X2 1 8 2 2 X2 4 >
6.3.2 重铸
> library(reshape) > md <- melt(mydata, id=c("id","time")) > md id time variable value 1 1 1 x1 5 2 1 2 x1 3 3 2 1 x1 6 4 2 2 x1 2 5 1 1 x2 6 6 1 2 x2 5 7 2 1 x2 1 8 2 2 x2 4 > cast(md, id~variable, mean) id x1 x2 1 1 4 5.5 2 2 4 2.5 > cast(md, time~variable, mean) time x1 x2 1 1 5.5 3.5 2 2 2.5 4.5 > cast(md, id~time, mean) id 1 2 1 1 5.5 4 2 2 3.5 3 > cast(md, id+time~variable) id time x1 x2 1 1 1 5 6 2 1 2 3 5 3 2 1 6 1 4 2 2 2 4 > cast(md, id+variable~time) id variable 1 2 1 1 x1 5 3 2 1 x2 6 5 3 2 x1 6 2 4 2 x2 1 4 > cast(md, id+variable~time) id variable 1 2 1 1 x1 5 3 2 1 x2 6 5 3 2 x1 6 2 4 2 x2 1 4 > cast(md, id~variable+time) id x1_1 x1_2 x2_1 x2_2 1 1 5 3 6 5 2 2 6 2 1 4 >
以上是关于R语言实战 - 高级数据管理的主要内容,如果未能解决你的问题,请参考以下文章
R语言实战英文书籍,配套源代码,帮助你学习R语言!(可下载)