• 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

  • 相关阅读:
    Android开发经验一判断当前屏幕是全屏还是非全屏
    Android得到控件在屏幕中的坐标
    MyBatis简单的增删改查以及简单的分页查询实现
    Coreseek:第二步建索引及測试
    极静之渊
    统计电影票房排名前10的电影并存入还有一个文件
    AAA
    FreeLink开源呼叫中心设计思想
    树后台数据存储(採用webmethod)
    [乐意黎原创] 百度统计这个坑爹货
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5175085.html
Copyright © 2020-2023  润新知