美文网首页
R语言入门笔记4-数据结构

R语言入门笔记4-数据结构

作者: 七七师姐 | 来源:发表于2019-05-11 17:46 被阅读0次

    R中用于存储数据的结构有:向量、矩阵、数组、数据框、列表

    一、创建不同数据结构的数据集

    1、向量

    函数c()一维数组,用于存储数值型、字符型、逻辑型数据。同一向量中元素的数据模式必须一致,无法混杂不同模式的数据。
    示例:

    aa <- c(1:20)  # 数值型向量
    bb <- c("one", "two", "three", "four") # 字符型向量
    cc <- c("a","b","c","d","e") # 字符型向量
    dd <- c(TRUE, TRUE, FALSE, FALSE) # 逻辑型向量
    

    2、矩阵

    函数matrix(), 二维数组,用于存储数值型、字符型、逻辑型数据。同一矩阵中元素的数据模式必须一致,无法混杂不同模式的数据。
    一般格式:

    mymatrix <- matrix(vector, nrow = mumber_of_rows, ncol = number_of_colums, 
                                  byrow = logical_value, 
                                  dimnames = list(char_vector_rownames, char_vector_colnames))
    

    示例:

    mymatrix <- matrix(1:20, nrow = 4, ncol = 5,
                       byrow = TRUE, dimnames = list(bb,cc))
    mymatrix
    mymatrix2 <- matrix(1:20,4,5,T,list(bb,cc))
    mymatrix2
    

    3、数组

    函数array(), 维度可以大于2,用于存储数值型、字符型、逻辑型数据。同一数组中元素的数据模式必须一致,无法混杂不同模式的数据。
    一般格式:

    myarray <- array(vector, dimensions, dimnames)
    

    示例:

    myarray <- array(aa,c(2,2,5), dimnames = list())
    myarray
    dim1 <- c("A1","A2")
    dim2 <- c("B1","B2")
    dim3 <- c("C1","C2","C3","C4","C5")
    dimnames(myarray) <- list(dim1,dim2,dim3)
    myarray
    

    4、数据框

    函数data.frame(),二维数据集,同一数据框中,不同列的数据模式可以不同。是R中最常用的数据结构。
    一般格式:

    mydf <- data.frame(col1, col2,col3)
    

    示例:

    AA <- c(4,3,2,1)
    BB <- c("one","two","three","four")
    CC <- c( TRUE, FALSE, TRUE,FALSE)
    mydf <- data.frame(AA,BB,CC)
    mydf
    colnames(mydf) <- c("a","b","c")
    rownames(mydf) <- AA
    mydf
    

    5、列表

    函数list(), 就是一些对象的有序集合,可以把任何对象整合进一个列表中。
    一般格式:

    mylist <- list(object1, object2, ...)
    mylist <- list(name1 = object1, name2 = object2, ...)
    

    示例:

    mylist <- list(ob1 = aa,ob2 = bb,dd,mymatrix, myarray, mydf)
    mylist
    

    二、选取数据结构中的子集

    1、向量

    使用方括号+坐标值

    aa[3]
    bb[c(1,3,4)]
    dd[1:3]
    

    2、矩阵

    使用方括号+坐标值

    mymatrix
    mymatrix[2,]
    mymatrix[,5]
    mymatrix[2,5]
    mymatrix[2,c(4:5)]
    mymatrix[c(2:4),c(4:5)]
    mymatrix[c(1,4),c(1,3)]
    

    3、数组

    使用方括号+坐标值

    myarray
    myarray[1, , ]
    myarray[, 2, ]
    myarray[, , 3]
    myarray[1, 2, 3]
    

    4、数据框

    使用方括号+坐标值,或者使用$符号+列名

    mydf
    mydf[1,]
    mydf[,2]
    mydf[1,2]
    mydf[c(1:3),c(2:3)]
    mydf[1]
    mydf[3]
    mydf[c(1,3)]
    mydf$a
    

    5、列表

    使用方括号+元素坐标值,或者使用$符号+元素名称

    mylist
    mylist[1]
    mylist[c(1:3)]
    mylist$ob1
    

    三、数据类型转换

    is.datatype()用来判断数据的类型
    as.datatype()用来转换数据的类型

    示例:

    is.numeric(aa)
    is.character(aa)
    is.vector(aa)
    is.matrix(aa)
    is.data.frame(aa)
    is.factor(aa)
    is.logical(aa)
    is.list(aa)
    
    as.numeric(aa)
    as.character(aa)
    as.vector(aa)
    as.matrix(aa)
    as.data.frame(aa)
    as.factor(aa)
    as.logical(aa)
    as.list(aa)
    
    as.data.frame(mymatrix)
    as.matrix(mydf)
    is.numeric(mydf)
    as.data.frame(mydf)
    is.numeric(mydf$a)
    is.character(mydf$a)
    
    mydfmatrix <- as.matrix(mydf)
    mydfmatrix
    is.character(mydfmatrix)
    
    mylist
    as.data.frame(mylist[6])
    is.data.frame(mylist[6]) 
    

    四、总结

    数据结构 如何创建 如何判断 如何转换 元素类型是否必须一致 取子集
    向量 c() is.vector() as.vector() []+坐标值
    矩阵 matrix() is.matrix() as.matrix() []+坐标值
    数组 array() is.array() as.array() []+坐标值
    数据框 data.frame() is.data.frame() as.data.frame() []+坐标值、$+列名
    列表 list() is.list() as.list() []+坐标值、$+元素名

    相关文章

      网友评论

          本文标题:R语言入门笔记4-数据结构

          本文链接:https://www.haomeiwen.com/subject/cvfkeqtx.html