• R语言之数据处理


    R语言之数据处理

    一、向量处理


    1.选择和显示向量
    data[1]
    data[3]
    data[1:3]
    data[-1]:除第一项以外的所有项
    data[c(1,3,4,6)]
    data[data>3]
    data[data<5|data>7]:小于5或大于7的所有项
    which(data == max(data)):显示数值最大的那个项序号
    data[seq(1,length(data),2)]:每隔一段取出特定值,1为从第一项开始,length(data)表示到向量的最后一项结束,2表示间隔两项

    2.向量的排序

    sort()函数可以为向量排序,默认为升序,选项na.last默认为去掉NA项,TRUE为包含NA并放置最后,FALSE为包含NA并放置最前面,对于重复数值,sort采取的是并列排序的方式
    sort(data,na.last = NA)
    sort(data,na.last = TRUE)
    sort(data,na.last = FALSE)


    order()函数,获得向量的排序号,选项na.last默认为TRUE包含NA并将其放置最后,NA为不包含NA项,FALSE为包含NA并放置最前面
    oder(data,na.last = NA)
    order(data,na.last = TRUE)
    order(data,na.last = FALSE)


    rank()函数,也是向量排序函数,和sort()不同,对于重复数值,rank不会并列,而且采用其他方式,默认为采取去平均数。选项ties.method为处理重复数值的方式,na.last为处理NA值的方式,keep为保留NA值
    rank(data,ties.method=average,na.last="keep")

    3.向量返回逻辑值

    直接使用向量进行等号判断即可,如
    > data == 100
    [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE


    二、矩阵和数据框处理

    1.选择和显示矩阵或数据框

    和向量一样,选择矩阵和数据框也可以使用[],但是需要指定行和列,通用格式为
    object[row,column]

    data[3,3]:选择第三行第三列的数据
    data[3,1:4]:选择第三行和1-4列的数据
    data[1:2,1:3]:选择第1-2行、第1-3列的数据
    data[,1]:选择第一列的全部数据,以向量形式返回
    data[1,]:选择第一行全部数据
    data[1]:对于数据框,显示第一列的数据,以列表形式返回,对于矩阵,将视为索引号,显示索引号对应的值。
    data[c(1,3,5,7),]
    data[c(1,3,5,7).-4]:选择1,3,5,7行、除第四列以外的所有值。
    data[c(1,3,5,7),"列名"],选项1,3,5,7行,和某列的值

    索引号:矩阵的索引方式是从第一列第一行开始,依次读取每一列,可用test.matrix

    2.矩阵和数据框的排序

    和向量一样,也使用sort、order、rank函数进行排序,但是sort可用对整个矩阵排序,但是不能对整个数据框排序,应用数据框的时候,应选择其中一部分进行。

    三、列表的处理

    列表经常存放不同结构的数据,因此在处理列表数据前,应先查看一下列表内容的数据结构,使用str函数进行查看


    1.选择和显示列表数据

    data[1]:选择列表中的第1个元素

    2.列表的排序

    只能对列表中的某个元素进行排序,而且要使用$符号进行选择

    sort(data$one):对data列表中的one元素进行排序


    四、数据对象的基本操作

    1.查看及设置行和列名
    names():可以得到数据对象行和列的名称,可用于列表和数据框,对矩阵无效

    row.names()和colnames():可得到数据对象行或列的名称,可用于数据框和矩阵,对列表无效

    dimnames():可得到数据对象行和列的名称,先显示行名,后显示列名,对数据框和矩阵有效,对列表无效,因为列表并没有行和列。

    可同时使用上述函数对名称进行设置


    2.行列转置

    可使用t()函数进行行列转置,无论之前是何种数据结构,转置之后均变为矩阵结构。

    五、构造数据对象

    1.构造列表

    将不同数据结构的对象合并在一起的唯一方式是使用列表,创建列表用list()函数。

    2.构造数据框
    构造数据框使用data.frame()函数,数据框是数据列的集合,数据列可以是数值类型和文本类型,如果是文本类型,数据框将其视为因子,数字格式如果长度不同,则会以NA补齐。


    3.构造矩阵

    cbind():将向量组成矩阵的列
    rbind():将向量组成矩阵的行
    如果向量中既有数字也有字符,那么数字将会被转换为字符


    此外,一般都是有matrix()函数,matrix(data,nrow=2),必须指定正确的行或列数,也就是说行货列能够被数据个数整除,否则会报错

    六、数据对象的转换

    as.data.frame():转换为数据框
    as.character():转换为因子
    as.matrix():转换为矩阵
    as.list():转换为列表
    as.table():转换为表格

    可以通过is.函数判断数据对象的类型,如:is.data.frame判断,返回的是逻辑值。也可以通过class()函数,直接返回数据对象类型。

    列表的转换比较麻烦,最好是先转为数据框再转为其他,数据框不能直接转换为表格,需要先转换为矩阵,再转换为表格。

    stack()函数对于转换数据框有特别的用处,因为它可以创建一列数值和一列因子的数据框形式。unstack是它的反向操作数据分析师培训

    此外,stack()函数还可以加入一些选项,得到更多的效果

    例如,有数据框data如下:
      height    plant water
          9 vulgaris    lo
         11 vulgaris    lo
          6 vulgaris    lo
         14 vulgaris   mid
         17 vulgaris   mid
         19 vulgaris   mid
         28 vulgaris    hi
         31 vulgaris    hi
         32 vulgaris    hi
    10       sativa    lo
    11       sativa    lo
    12       sativa    lo
    13     14   sativa   mid
    14     17   sativa   mid
    15     15   sativa   mid
    16     44   sativa    hi
    17     38   sativa    hi
    18     37   sativa    hi

    有三列数据,一列数值两列因子,我们可做如下操作

    > unstack(data,form=height~plant)
      sativa vulgaris
               9
              11
               6
        14       14
        17       17
        15       19
        44       28
        38       31
        37       32

    > unstack(data,form=height~water)
      hi lo mid
    1 28  14
    2 31 11  17
    3 32  19
    4 44  14
    5 38  17
    6 37  15

    > cc<-unstack(data,form=height~water)
    > stack(cc,select = c(hi,lo))
     values ind
         28  hi
         31  hi
         32  hi
         44  hi
         38  hi
         37  hi
          lo
         11  lo
          lo
    10      lo
    11      lo
    12      lo
  • 相关阅读:
    RPM的使用详细演示安装,删除和查询
    GCC 参数详解
    简述configure、pkgconfig、pkg_config_path三者的关系
    RPM查询篇
    Linux软件安装之RPM的安装技巧
    linux gcc 编译时头文件和库文件搜索路径
    嵌入式开发.C语言面试题
    GCC几个选项学习
    asp.net mvc 自定权限实现
    使用Jquery EasyUi常见问题解决方案
  • 原文地址:https://www.cnblogs.com/amengduo/p/9587156.html
Copyright © 2020-2023  润新知