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
    > 
    
  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/wnzhong/p/7535344.html
Copyright © 2011-2022 走看看