zoukankan      html  css  js  c++  java
  • R语言实战-数据类型-1(标量、向量、矩阵、数组)

    0、基本数据类型

    数值型num,包含整形、浮点型、双精度型等所有数值类型

    字符型factor,字符和字符串,因子

    布尔值logi,布尔型,T,TRUE,F,FALSE

    1、标量

    单个的数值、字符值或者布尔值

    2、向量

    函数c()

    1 a<-c(1,2,3,4)
    2 b<-c('aa','bb','cc')
    3 c<-c(TRUE,FALSE,TRUE)

     访问向量的元素

    []中括号中指定元素的下标

    可以是单个数值,也可以是数值向量,还可以用x:y的形式指定一个范围

    1 > d<-a[c(1,3)]
    2 > d
    3 [1] 1 3
    4 > e<-a[2:4]
    5 > e
    6 [1] 2 3 4
    7 > f<-a[3]
    8 > f
    9 [1] 3

    3、矩阵

    Usage

    matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,
           dimnames = NULL)

     1 matrix(1:21,nrow = 5)
     2      [,1] [,2] [,3] [,4] [,5]
     3 [1,]    1    6   11   16   21
     4 [2,]    2    7   12   17    1
     5 [3,]    3    8   13   18    2
     6 [4,]    4    9   14   19    3
     7 [5,]    5   10   15   20    4
     8 Warning message:
     9 In matrix(1:21, nrow = 5) :
    10   data length [21] is not a sub-multiple or multiple of the number of rows [5]
    11 > 

    如上所述,矩阵创建自向量,可以通过指定行数来分配元素,默认是以列优先排列,可以通过指定byrow参数来改变元素排列方式

     1  matrix(1:21,nrow = 5,byrow = TRUE)
     2      [,1] [,2] [,3] [,4] [,5]
     3 [1,]    1    2    3    4    5
     4 [2,]    6    7    8    9   10
     5 [3,]   11   12   13   14   15
     6 [4,]   16   17   18   19   20
     7 [5,]   21    1    2    3    4
     8 Warning message:
     9 In matrix(1:21, nrow = 5, byrow = TRUE) :
    10   data length [21] is not a sub-multiple or multiple of the number of rows [5]

    矩阵元素的访问

     1 > x[2,]
     2 [1]  6  7  8  9 10
     3 > x[,2]
     4 [1]  2  7 12 17 22
     5 > x[2,2]
     6 [1] 7
     7 > x[3,3]
     8 [1] 13
     9 > x[c(1,3),]
    10      [,1] [,2] [,3] [,4] [,5]
    11 [1,]    1    2    3    4    5
    12 [2,]   11   12   13   14   15
    13 > x[c(1,3),c(2,4)]
    14      [,1] [,2]
    15 [1,]    2    4
    16 [2,]   12   14
    17 > x[1:3,]
    18      [,1] [,2] [,3] [,4] [,5]
    19 [1,]    1    2    3    4    5
    20 [2,]    6    7    8    9   10
    21 [3,]   11   12   13   14   15

    4、数组

    Usage

    array(data = NA, dim = length(data), dimnames = NULL)
      1 > y<-array(1:100,dim = c(2,2,5,5),
      2 +          dimnames = list(
      3 +            c('a1','a2'),
      4 +            c('b1','b2'),
      5 +            c('c1','c2','c3','c4','c5'),
      6 +            c('d1','d2','d3','d4','d5')))
      7 > y
      8 , , c1, d1
      9 
     10    b1 b2
     11 a1  1  3
     12 a2  2  4
     13 
     14 , , c2, d1
     15 
     16    b1 b2
     17 a1  5  7
     18 a2  6  8
     19 
     20 , , c3, d1
     21 
     22    b1 b2
     23 a1  9 11
     24 a2 10 12
     25 
     26 , , c4, d1
     27 
     28    b1 b2
     29 a1 13 15
     30 a2 14 16
     31 
     32 , , c5, d1
     33 
     34    b1 b2
     35 a1 17 19
     36 a2 18 20
     37 
     38 , , c1, d2
     39 
     40    b1 b2
     41 a1 21 23
     42 a2 22 24
     43 
     44 , , c2, d2
     45 
     46    b1 b2
     47 a1 25 27
     48 a2 26 28
     49 
     50 , , c3, d2
     51 
     52    b1 b2
     53 a1 29 31
     54 a2 30 32
     55 
     56 , , c4, d2
     57 
     58    b1 b2
     59 a1 33 35
     60 a2 34 36
     61 
     62 , , c5, d2
     63 
     64    b1 b2
     65 a1 37 39
     66 a2 38 40
     67 
     68 , , c1, d3
     69 
     70    b1 b2
     71 a1 41 43
     72 a2 42 44
     73 
     74 , , c2, d3
     75 
     76    b1 b2
     77 a1 45 47
     78 a2 46 48
     79 
     80 , , c3, d3
     81 
     82    b1 b2
     83 a1 49 51
     84 a2 50 52
     85 
     86 , , c4, d3
     87 
     88    b1 b2
     89 a1 53 55
     90 a2 54 56
     91 
     92 , , c5, d3
     93 
     94    b1 b2
     95 a1 57 59
     96 a2 58 60
     97 
     98 , , c1, d4
     99 
    100    b1 b2
    101 a1 61 63
    102 a2 62 64
    103 
    104 , , c2, d4
    105 
    106    b1 b2
    107 a1 65 67
    108 a2 66 68
    109 
    110 , , c3, d4
    111 
    112    b1 b2
    113 a1 69 71
    114 a2 70 72
    115 
    116 , , c4, d4
    117 
    118    b1 b2
    119 a1 73 75
    120 a2 74 76
    121 
    122 , , c5, d4
    123 
    124    b1 b2
    125 a1 77 79
    126 a2 78 80
    127 
    128 , , c1, d5
    129 
    130    b1 b2
    131 a1 81 83
    132 a2 82 84
    133 
    134 , , c2, d5
    135 
    136    b1 b2
    137 a1 85 87
    138 a2 86 88
    139 
    140 , , c3, d5
    141 
    142    b1 b2
    143 a1 89 91
    144 a2 90 92
    145 
    146 , , c4, d5
    147 
    148    b1 b2
    149 a1 93 95
    150 a2 94 96
    151 
    152 , , c5, d5
    153 
    154    b1  b2
    155 a1 97  99
    156 a2 98 100

    数组array元素访问

     1 > y[1,2,3,4]
     2 [1] 71
     3 > y[1,2,1:2,2:3]
     4    d2 d3
     5 c1 23 43
     6 c2 27 47
     7 > y[1,c(1,2),2:4,c(1,3,5)]
     8 , , d1
     9 
    10    c2 c3 c4
    11 b1  5  9 13
    12 b2  7 11 15
    13 
    14 , , d3
    15 
    16    c2 c3 c4
    17 b1 45 49 53
    18 b2 47 51 55
    19 
    20 , , d5
    21 
    22    c2 c3 c4
    23 b1 85 89 93
    24 b2 87 91 95

    PS:统一的下标定义方式,减少学习成本,赞一个!

    再尝试使用列明访问

    1 > y[c('a2'),'b2','c2','d2']
    2 [1] 28
    3 > y[c('a2'),'b2','c2',c('d2','d3')]
    4 d2 d3 
    5 28 48 

    PS:需要注意的是数组array定义时不支持按行填充!!

    PS:以上所提及的标量、向量、矩阵、数组都仅仅支持相同的数据类型

  • 相关阅读:
    New Day
    apache mod_xsendfile 让php提供更快的文件下载
    XSS跨站测试代码大全
    HTML5 使用application cache 接口实现离线数据缓存
    HTTP 204 与 205 应用
    php HTTP请求类,支持GET,POST,Multipart/form-data
    php 过滤html标记属性类
    php 利用fsockopen GET/POST 提交表单及上传文件
    php 实现BigPipe分块输出
    同一域名对应不同IP,访问指定主机文件内容的方法
  • 原文地址:https://www.cnblogs.com/qianheng/p/10800384.html
Copyright © 2011-2022 走看看