zoukankan      html  css  js  c++  java
  • R语言数据框行转列实例

    目的:须要把数据框的行列进行转置

    方法:

    # 原始数据框
    > hrl_jd_mon
        年份 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月
    1 2010年 51.2 45.8 55.8 62.9 63.8 59.5 80.5 78.0 66.0 92.3  50.80   55.6
    2 2011年 54.8 54.4 64.1 78.5 64.5 63.4 95.3 89.2 68.8 86.1  51.40   52.4
    3 2012年 53.0 46.1 52.8 72.6 49.8 50.1 65.3 64.6 54.4 73.0  39.40   40.5
    4 2013年 40.7 43.7 45.1 50.9 40.7 41.1 50.7 54.5 37.8 62.5  30.20   29.6
    5 2014年 28.2 34.1 30.3 33.4 31.5 23.5 32.3 33.0 22.5 29.9   3.31    0.0

    # 转置过程:
    > 月份 <- c("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月")

    > data.frame(hrl_jd_mon,row.names=1)
           一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月
    2010年 51.2 45.8 55.8 62.9 63.8 59.5 80.5 78.0 66.0 92.3  50.80   55.6
    2011年 54.8 54.4 64.1 78.5 64.5 63.4 95.3 89.2 68.8 86.1  51.40   52.4
    2012年 53.0 46.1 52.8 72.6 49.8 50.1 65.3 64.6 54.4 73.0  39.40   40.5
    2013年 40.7 43.7 45.1 50.9 40.7 41.1 50.7 54.5 37.8 62.5  30.20   29.6
    2014年 28.2 34.1 30.3 33.4 31.5 23.5 32.3 33.0 22.5 29.9   3.31    0.0


    > t1 <- t(data.frame(hrl_jd_mon,row.names=1))
    > t1 
           2010年 2011年 2012年 2013年 2014年
    一月     51.2   54.8   53.0   40.7  28.20
    二月     45.8   54.4   46.1   43.7  34.10
    三月     55.8   64.1   52.8   45.1  30.30
    四月     62.9   78.5   72.6   50.9  33.40
    五月     63.8   64.5   49.8   40.7  31.50
    六月     59.5   63.4   50.1   41.1  23.50
    七月     80.5   95.3   65.3   50.7  32.30
    八月     78.0   89.2   64.6   54.5  33.00
    九月     66.0   68.8   54.4   37.8  22.50
    十月     92.3   86.1   73.0   62.5  29.90
    十一月   50.8   51.4   39.4   30.2   3.31
    十二月   55.6   52.4   40.5   29.6   0.00

    > t2 <- as.data.frame(t1,row.names=F)
    > t2
       2010年 2011年 2012年 2013年 2014年
    1    51.2   54.8   53.0   40.7  28.20
    2    45.8   54.4   46.1   43.7  34.10
    3    55.8   64.1   52.8   45.1  30.30
    4    62.9   78.5   72.6   50.9  33.40
    5    63.8   64.5   49.8   40.7  31.50
    6    59.5   63.4   50.1   41.1  23.50
    7    80.5   95.3   65.3   50.7  32.30
    8    78.0   89.2   64.6   54.5  33.00
    9    66.0   68.8   54.4   37.8  22.50
    10   92.3   86.1   73.0   62.5  29.90
    11   50.8   51.4   39.4   30.2   3.31
    12   55.6   52.4   40.5   29.6   0.00

    # 终于成品
    > t3 <- as.data.frame(cbind(月份,t2))
    > t3
         月份 2010年 2011年 2012年 2013年 2014年
    1    一月   51.2   54.8   53.0   40.7  28.20
    2    二月   45.8   54.4   46.1   43.7  34.10
    3    三月   55.8   64.1   52.8   45.1  30.30
    4    四月   62.9   78.5   72.6   50.9  33.40
    5    五月   63.8   64.5   49.8   40.7  31.50
    6    六月   59.5   63.4   50.1   41.1  23.50
    7    七月   80.5   95.3   65.3   50.7  32.30
    8    八月   78.0   89.2   64.6   54.5  33.00
    9    九月   66.0   68.8   54.4   37.8  22.50
    10   十月   92.3   86.1   73.0   62.5  29.90
    11 十一月   50.8   51.4   39.4   30.2   3.31
    12 十二月   55.6   52.4   40.5   29.6   0.00

    > str(t3)
    'data.frame':        12 obs. of  6 variables:
    $ 月份  : Factor w/ 12 levels "八月","二月",..: 12 2 6 10 11 4 5 1 3 9 ...
    $ 2010年: num  51.2 45.8 55.8 62.9 63.8 59.5 80.5 78 66 92.3 ...
    $ 2011年: num  54.8 54.4 64.1 78.5 64.5 63.4 95.3 89.2 68.8 86.1 ...
    $ 2012年: num  53 46.1 52.8 72.6 49.8 50.1 65.3 64.6 54.4 73 ...
    $ 2013年: num  40.7 43.7 45.1 50.9 40.7 41.1 50.7 54.5 37.8 62.5 ...
    $ 2014年: num  28.2 34.1 30.3 33.4 31.5 23.5 32.3 33 22.5 29.9 ...

    原贴地址:http://f.dataguru.cn/forum.php?mod=viewthread&tid=453010&page=1#pid1267442

  • 相关阅读:
    就是能打开网站的首页,但不能打开二级链接的解决办法
    .NET学习笔记:文件和注册表操作
    小猪今天生病了,要打针了
    Android基础教程——在TextView中显示Html 自定义标签,获取标签属性
    所谓周末,就是在家好好做饭、好好睡觉、好好玩游戏
    我开通了个人博客
    《和空姐一起的日子》中顾太太新买的电脑
    iPhone & iPad apps with special url shortcuts
    iPhone开发错误集
    瞧瞧包拯,狄仁杰,宋慈的团队
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5175085.html
Copyright © 2011-2022 走看看