zoukankan      html  css  js  c++  java
  • 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
    > 
    
  • 相关阅读:
    day30---多态与鸭子类型
    day---30 Mixins机制与重用父类功能的两种方式
    day29---面向对象编程之继承
    day---28 作业
    day28---面向对象之封装
    day27----作业
    day---27面向对象编程与类
    day26---ATM+购物车
    day25---软件设计的3层架构
    day24---RE模块部分整理
  • 原文地址:https://www.cnblogs.com/wnzhong/p/7535344.html
Copyright © 2011-2022 走看看