美文网首页
【R语言】---创建数据集

【R语言】---创建数据集

作者: 生态数据 | 来源:发表于2021-05-19 08:44 被阅读0次

    数据集的概念

    数据集一般情况下是由数据构成的一个矩形数据,行表示观测值,列表示变量。例如:


    病例数据(引自R语言实战)

    通过数据集,可以清楚的看到数据结构及其中包含的内容和数据类型。

    数据结构

    R中有很多用于储存数据的结构,包括标量、向量、数组、数据框和列表。它们在储存数据的类型、创建方式、结构复杂度,及用于定位和访问其中个别元素的标记等方面均有所不同。


    R中的数据结构(引自R语言实战)

    向量

    向量(vector)是用于储存数值型、字符型或者逻辑型数据的一维数组。R中的c()函数可以用来创建向量,例如:

    a<-c(1,2,3,4,5,6,7,8,9,10)
    b<-c("one", "two", "three")
    c<-c(TRUE, TRUE, TRUE, FALSE, TRUE)
    #a是数值型向量,b是字符型向量,c是逻辑型向量(同一向量中无法混合不同模式的数据)。
    #a<-c(2: 6) 和 a<-c(2,3,4,5,6)是一样的
    

    矩阵

    矩阵(matrix)是一个二维数组,只是每个元素都拥有相同的模式(数值型、字符型或逻辑型)。可以通过matrix()函数创建矩阵。一般可以使用如下格式:

    mmatrix <- matrix(vector, nrow=number of rows, ncol=number of columns, byrow=logical value, dimnames=list, char vector rownames, char vector conames)
    

    其中vector包含了矩阵的元素, nrow和ncol用以指定行和列的维数, dimnames包含了可选的、以字符型向量表示的行名和列名。选项byrow则表明矩阵应当按行填充( byrow=TRUE)还是按列填充( byrow=FALSE),默认情况下按列填充。代码清单2-1中的代码演示了matrix()函数的用法。

    y<-matrix(1:20, nrow = 5, ncol = 4)
    y
    
    5×4的矩阵
    cells <- c(1,26,24,68)
    rnames <- c("A1","A2")
    cnames <- c("B1","B2")
    y1<-matrix(cells, nrow = 2, ncol = 2, byrow = T, dimnames = list(rnames, cnames))
    y1
    
    2×2 行名为A和列名为B的矩阵

    数组

    数组(array)和矩阵类似,但其维度可以大于2。数组可以通过array()函数创建,形式如下:
    myarry <- array(vector, dimensions, dimnames)
    其中vector包含了数组中的数据, dimensions是一个数值型向量,给出了各个维度下标的最大值,而dimnames是可选的、各维度名称标签的列表。我们创建一个三维(2×3×4)数据型数组的代码如下:

    dim1 <- c("a1","a2")
    dim2 <- c("b1","b2")
    dim3 <- c("c1","c2")
    all <- array(1:24, c(2,3,4), dimnames(dim1, dim2, dim3)
    all
    
    2×3×4三维数值型数组

    数据框

    数据框(data frame)是R中最常见处理数据结构。例如病例数据集包含数值型和字符型数据。由于该数据有多种模式(数值型和字符型同时存在),则无法将此数据集放入一个矩阵,因此在这种情况下应该使用数据框。
    data <- data.frame(col1, col2, col3,....)
    列向量col1, col2, col3,… 可为任何类型(如字符型、数值型或逻辑型)。每一列的名称可由函数names指定。

    a<-c(1,2,3,4,5,6)
    b<-c(23,22,23,22,12,32)
    c<-c("A","B","C","A","B","C")
    data<-data.frame(a, b, c)
    data
    

    每一列数据的模式必须唯一,不过你却可以将多个模式的不同列放到一起组成数据框。由于数据框与分析人员通常设想的数据集的形态较为接近,我们在讨论数据框时将交替使用术语列和变量。

    因子

    因子(factor)是R语言中比较特殊的一个数据类型, 它是一个用于存储类别的类型。R中用因子代表数据中分类变量,如性别、省份、职业。 有序因子代表有序量度,如打分结果,疾病严重程度等。用factor()函数把字符型向量转换成因子,如:

    x <- c("男", "女", "男", "男",  "女")
    sex <- factor(x)
    sex
    attributes(sex)
    levels(sex)
    as.numeric(sex)
    
    factor(x, levels = sort(unique(x), na.last = TRUE), 
           labels, exclude = NA, ordered = FALSE)
    
    li1 <- factor(c('男', '女'))
    li2 <- factor(c('男', '男'))
    c(li1, li2)
    
    factor(c(as.character(li1), as.character(li2)))
    

    列表

    列表(list)是R数据类型中最为复杂的一种。一般来说,列表就是一些对象或者成分的有序集合。列表允许被整合若干对象到单个对象名下。例如,某个列表可能是若干向量、矩阵、数据框,甚至其他列表的组合,可以使用list()函数创建列表:

    mylist <- list(ob1, ob2,....) #对象可以是目前为止讲到的任何结构。
    

    示例代码:

    a <- "my list"
    b <- c(1,2,3,4,5)
    c <- matrix(1:5, nrow = 5)
    d <- c("A", "B", "C")
    mylist <- list(title = a, num = b)
    
    list示例

    本例创建了一个列表,其中有四个成分:一个字符串、一个数值型向量、一个矩阵以及一个字符型向量。可以组合任意多的对象,并将它们保存为一个列表。

    注意事项

    注意事项(引自R语言实战)

    参考文献

    Robert I. Kabacoff (著). R语言实战(高涛/肖楠/陈钢 译). 北京: 人民邮电出版社.

    相关文章

      网友评论

          本文标题:【R语言】---创建数据集

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