zoukankan      html  css  js  c++  java
  • R语言的数据结构

    首先声明,R语言对大小写敏感。

    一、向量

    vector类型可以存储数字、字符和逻辑类型。构建函数为C():

    > a <- c(1,2,3,4)

    > b <- c('dau','wau','mau')

    > a[2](R语言中的索引是从1开始)

    2

    >b[c(1,3)]

    dau mau

    >b[1:3]

    dau wau mau

    二、矩阵

    矩阵的元素类型必须是一致的(数字型,字符型或逻辑型)。构建函数matrix(vector,nrow=行数,ncol=列数,byrow=逻辑值,dimname=list(行名,列名))

    > y <- matrix(1:20,nrow=4,ncol=5)(如未指定byrow,默认按列排序)
    > y
    [,1] [,2] [,3] [,4] [,5]
    [1,] 1 5 9 13 17
    [2,] 2 6 10 14 18
    [3,] 3 7 11 15 19
    [4,] 4 8 12 16 20

    > y <- matrix(1:20,nrow=4,ncol=5,byrow=TRUE)
    > y
    [,1] [,2] [,3] [,4] [,5]
    [1,] 1 2 3 4 5
    [2,] 6 7 8 9 10
    [3,] 11 12 13 14 15
    [4,] 16 17 18 19 20

    三、数组

    数组就是二维及以上维数的矩阵,构建函数为array(vector,dimensions,dimnames)

    > dim1 <- c("A1","A2")
    > dim2 <- c("B1","B2","B3")

    > dim3 <- c("C1","C2","C3","C4")
    > z <- array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))

    > z
    , , C1

    B1 B2 B3
    A1 1 3 5
    A2 2 4 6

    , , C2

    B1 B2 B3
    A1 7 9 11
    A2 8 10 12

    , , C3

    B1 B2 B3
    A1 13 15 17
    A2 14 16 18

    , , C4

    B1 B2 B3
    A1 19 21 23
    A2 20 22 24

    四、数据框

    数据框可以自由组合不同类型的列(同列数据类型相同,不同列数据类型可不一样,不同的列的长度必须一样),构建函数是data.frame(col1,col2,......)

    > accounut <- c('Jet','Tina','Elliot','Anna')
    > level <- c(21,31,34,15)
    > vip <- c(FALSE,TRUE,TRUE,FALSE)
    > accountdata <- data.frame(accounut,level,vip)
    > accountdata
    accounut level vip
    1 Jet 21 FALSE
    2 Tina 31 TRUE
    3 Elliot 34 TRUE
    4 Anna 15 FALSE
    > names(accountdata) <- c('账户名','等级数','是否VIP')
    > accountdata
    账户名 等级数 是否VIP
    1 Jet 21 FALSE
    2 Tina 31 TRUE
    3 Elliot 34 TRUE
    4 Anna 15 FALSE
    > names(accountdata)   #查看数据框列名
    [1] "账户名" "等级数" "是否VIP"
    > accountdata[1,1:3]   #取第1行,第1列至第3列的数据
    账户名 等级数 是否VIP
    1 Jet 21 FALSE
    > accountdata[,1:2]
    账户名 等级数
    1 Jet 21
    2 Tina 31
    3 Elliot 34
    4 Anna 15
    > accountdata[,c('账户名','等级数')]
    账户名 等级数
    1 Jet 21
    2 Tina 31
    3 Elliot 34
    4 Anna 15
    > accountdata$"等级数"     #取等级数的那一列,虽然取出来的数据都一样,但是类型已不是data.frame
    [1] 21 31 34 15

    五、列表

    列表是R语言中最复杂的数据结构,它允许任何类型的数据集合在一起(与数据框不同的是,列表中不同的列允许不同的长度),创建函数为list()。

    > a <- 'create a list'
    > b <- c(1,2,6,33,2,45,4)
    > c <- matrix(1:12,nrow=3,ncol=4)
    > d <- accountdata
    > mylist <- list(listname=a,"年龄"=b,c,'游戏分析'=d) # 创建列表
    > mylist
    $listname
    [1] "create a list"

    $年龄
    [1] 1 2 6 33 2 45 4

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

    $游戏分析
    账户名 等级数 是否VIP
    1 Jet 21 FALSE
    2 Tina 31 TRUE
    3 Elliot 34 TRUE
    4 Anna 15 FALSE

    > mylist[[2]] #取第2个成分
    [1] 1 2 6 33 2 45 4
    > mylist$年龄
    [1] 1 2 6 33 2 45 4

  • 相关阅读:
    第35条:注解优先于命名模式
    Apache Shiro入门实例
    第34条:用接口模拟可伸缩的枚举
    Lua数组排序
    C++多态性的理解
    爱推软件
    VMProtect使用小计【一】
    android软件开发之webView.addJavascriptInterface循环渐进【二】
    cocos2dx如何添加popScene的场景动画
    Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤
  • 原文地址:https://www.cnblogs.com/moady/p/5640323.html
Copyright © 2011-2022 走看看