沉闷科学的掘墓人分享 http://blog.sciencenet.cn/u/Bearjazz

博文

用R语言实现行列互换

已有 26819 次阅读 2012-3-23 15:55 |个人分类:我的研究|系统分类:科研笔记| R语言, 行列互换

R语言实现行列互换

 

熊荣川

六盘水师范学院生物信息学实验室

xiongrongchuan@126.com

http://blog.sciencenet.cn/u/Bearjazz

 

通常Excel表格中的行列互换我们是使用选择性粘贴中的转置功能来实现。那么怎样在强大的R语言平台上实现呢?下面我们通过一个实例来进行演示

 

data=read.csv(“D:/ziliao/zhuanye/R bear/ F34harmo.csv”)

导入表格数据赋值给矩阵data

data

查看data

 

          F3        F4        F5

1   5446.635  5858.746  6843.617

2   6654.305  7005.958  6924.623

3   7172.323  7169.585  6940.106

4   7311.956  7525.422  6977.832

5   8058.262 11214.798  7580.775

6   8116.698 11505.268  7915.856

7   8312.447 11544.472  8472.229

8   8667.151 11810.009  9492.205

9   9093.771 11881.491  9934.308

10  9103.865 11908.340 10787.881

11  9215.153 11909.480 10882.602

12  9461.068 12028.218 11161.032

13  9625.699 12112.602 11307.906

14  9896.211 12115.175 11497.302

15  9912.590 12174.058 11696.347

16  9942.585 12524.577 11800.720

17 10049.769 12533.796 11944.833

18 10120.347 12778.348 12439.379

19 10153.751 12862.208 13929.031

20 10160.672 12894.624 14691.925

21 10365.499 13010.052 14794.472

22 10393.181 13101.747 15368.400

23 10482.846 13188.517 15461.178

24 10583.587 13189.188 15558.937

25 10591.209 13243.095 15559.645

26 10640.676 13300.190 15623.761

27 10675.679 13664.360 15657.390

28 10723.670 14070.819 15714.827

29 10729.272 14155.309 15746.066

30 10900.465 14284.890 15756.113

31 10945.887 14287.759 15777.929

32 10989.468 14297.971 15793.488

33 11042.734 14318.933 15815.089

34 11095.552 14354.718 15817.700

35 11199.642 14530.077 15818.295

36 11200.800 14681.983 15860.937

37 11211.056 14685.578 16003.928

38 11243.513 14766.872 16013.536

39 11324.318 14817.897 16015.512

40 11394.809 14821.364 16052.696

41 11429.242 15015.235 16059.643

42 11514.232 15043.056 16067.201

43 11515.162 15236.188 16069.255

44 11547.771 15280.614 16079.015

45 11576.145 15549.818 16079.814

46 11671.397 15640.638 16081.685

47 11747.088 15746.188 16120.205

48 11775.793 15808.372 16134.122

49 12207.104 16510.259 16140.042

50 12921.229        NA 16151.293

51 12925.543        NA 16152.269

52        NA        NA 16184.463

53        NA        NA 16230.646

54        NA        NA 16243.203

55        NA        NA 16251.307

56        NA        NA 16337.266

57        NA        NA 16360.895

58        NA        NA 16367.404

59        NA        NA 16406.798

60        NA        NA 16709.307

61        NA        NA 16744.672

62        NA        NA 16860.826

63        NA        NA 16957.370

64        NA        NA 16975.136

65        NA        NA 17054.482

66        NA        NA 17193.373

67        NA        NA 18040.702

68        NA        NA 19188.307

 

查看结果,一个68行、3列的矩阵

length(data[,1])

统计有多上行

 

[1] 68

结果显示有68

length(data[1,])

统计有多少列

 

[1] 3

结果显示有3

n= length(data[,1])*length(data[1,])

将单元格数赋值给n

n

查看n

 

[1] 204

n值,即单元格数

x=1:204

定义一个有204个值得向量空间x

dim(x)=c(3,68)

 

x转化为一个有3行、68列数据的的矩阵

x

查看x

 

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]

[1,]    1    4    7   10   13   16   19   22   25    28    31    34    37

[2,]    2    5    8   11   14   17   20   23   26    29    32    35    38

[3,]    3    6    9   12   15   18   21   24   27    30    33    36    39

     [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24] [,25]

[1,]    40    43    46    49    52    55    58    61    64    67    70    73

[2,]    41    44    47    50    53    56    59    62    65    68    71    74

[3,]    42    45    48    51    54    57    60    63    66    69    72    75

     [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36] [,37]

[1,]    76    79    82    85    88    91    94    97   100   103   106   109

[2,]    77    80    83    86    89    92    95    98   101   104   107   110

[3,]    78    81    84    87    90    93    96    99   102   105   108   111

     [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49]

[1,]   112   115   118   121   124   127   130   133   136   139   142   145

[2,]   113   116   119   122   125   128   131   134   137   140   143   146

[3,]   114   117   120   123   126   129   132   135   138   141   144   147

     [,50] [,51] [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61]

[1,]   148   151   154   157   160   163   166   169   172   175   178   181

[2,]   149   152   155   158   161   164   167   170   173   176   179   182

[3,]   150   153   156   159   162   165   168   171   174   177   180   183

     [,62] [,63] [,64] [,65] [,66] [,67] [,68]

[1,]   184   187   190   193   196   199   202

[2,]   185   188   191   194   197   200   203

[3,]   186   189   192   195   198   201   204

查看结果

>

x[1,]=data[,1]

data的第1列赋值给x的第1

x[2,]=data[,2]

data的第2列赋值给x的第2

x[3,]=data[,3]

data的第3列赋值给x的第3

x

查看行列互换后的阵列

 

         [,1]     [,2]     [,3]     [,4]      [,5]      [,6]      [,7]

[1,] 5446.635 6654.305 7172.323 7311.956  8058.262  8116.698  8312.447

[2,] 5858.746 7005.958 7169.585 7525.422 11214.798 11505.268 11544.472

[3,] 6843.617 6924.623 6940.106 6977.832  7580.775  7915.856  8472.229

          [,8]      [,9]     [,10]     [,11]     [,12]     [,13]     [,14]

[1,]  8667.151  9093.771  9103.865  9215.153  9461.068  9625.699  9896.211

[2,] 11810.009 11881.491 11908.340 11909.480 12028.218 12112.602 12115.175

[3,]  9492.205  9934.308 10787.881 10882.602 11161.032 11307.906 11497.302

        [,15]     [,16]    [,17]    [,18]    [,19]    [,20]    [,21]

[1,]  9912.59  9942.585 10049.77 10120.35 10153.75 10160.67 10365.50

[2,] 12174.06 12524.577 12533.80 12778.35 12862.21 12894.62 13010.05

[3,] 11696.35 11800.720 11944.83 12439.38 13929.03 14691.92 14794.47

        [,22]    [,23]    [,24]    [,25]    [,26]    [,27]    [,28]    [,29]

[1,] 10393.18 10482.85 10583.59 10591.21 10640.68 10675.68 10723.67 10729.27

[2,] 13101.75 13188.52 13189.19 13243.09 13300.19 13664.36 14070.82 14155.31

[3,] 15368.40 15461.18 15558.94 15559.65 15623.76 15657.39 15714.83 15746.07

        [,30]    [,31]    [,32]    [,33]    [,34]    [,35]    [,36]    [,37]

[1,] 10900.47 10945.89 10989.47 11042.73 11095.55 11199.64 11200.80 11211.06

[2,] 14284.89 14287.76 14297.97 14318.93 14354.72 14530.08 14681.98 14685.58

[3,] 15756.11 15777.93 15793.49 15815.09 15817.70 15818.30 15860.94 16003.93

        [,38]    [,39]    [,40]    [,41]    [,42]    [,43]    [,44]    [,45]

[1,] 11243.51 11324.32 11394.81 11429.24 11514.23 11515.16 11547.77 11576.15

[2,] 14766.87 14817.90 14821.36 15015.24 15043.06 15236.19 15280.61 15549.82

[3,] 16013.54 16015.51 16052.70 16059.64 16067.20 16069.25 16079.01 16079.81

        [,46]    [,47]    [,48]    [,49]    [,50]    [,51]    [,52]    [,53]

[1,] 11671.40 11747.09 11775.79 12207.10 12921.23 12925.54       NA       NA

[2,] 15640.64 15746.19 15808.37 16510.26       NA       NA       NA       NA

[3,] 16081.68 16120.20 16134.12 16140.04 16151.29 16152.27 16184.46 16230.65

       [,54]    [,55]    [,56]   [,57]   [,58]   [,59]    [,60]    [,61]

[1,]      NA       NA       NA      NA      NA      NA       NA       NA

[2,]      NA       NA       NA      NA      NA      NA       NA       NA

[3,] 16243.2 16251.31 16337.27 16360.9 16367.4 16406.8 16709.31 16744.67

        [,62]    [,63]    [,64]    [,65]    [,66]   [,67]    [,68]

[1,]       NA       NA       NA       NA       NA      NA       NA

[2,]       NA       NA       NA       NA       NA      NA       NA

[3,] 16860.83 16957.37 16975.14 17054.48 17193.37 18040.7 19188.31

 

查看结果

 

R语言很有趣吧,祝您科研愉快!

 



https://blog.sciencenet.cn/blog-508298-550954.html

上一篇:如何在R语言中调用表格中连续单元数据
下一篇:R语言中的等距运算
收藏 IP: 210.75.236.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (2 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-14 11:27

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部