zoukankan      html  css  js  c++  java
  • dplyr 数据操作 列操作(select / mutate)

    在R中,我们通常需要对数据列进行各种各样的操作,比如选取某一列、重命名某一列等。

    dplyr中的select函数子在数据列的操作上也同样表现了它的简洁性,而且各种操作眼花缭乱。

    select(.data, ...)

    参数主要在于如何添加条件。配合select()进行使用的函数有:

    starts_with()
    ends_with()
    contains()
    matches()
    num_range()
    one_of()
    everything()

    配合以上这些函数,使得select()的使用更加的灵活。

    除了选择列以外,我们还可以添加一列,使用函数mutate()或transmute()

    mutate(.data, ...)

    transmute(.data, ...)

    下面来看些具体的例子

    library(dplyr)
    x<-data.frame(id=1:6,
                  name=c("wang","zhang","li","chen","zhao","song"),
                  shuxue=c(89,85,68,79,96,53),
                  yuwen=c(77,68,86,87,92,63),
                  shengwu=c(85,68,78,68,98,96))
    
    x
    

    select(x,name) 
    

    选取单列

    select(x,starts_with("s"))
    

    选取包好以“s”开头的列

    select(x,ends_with("e"))
    

    选取以“e”结尾的列。

    select(x,matches(".e."))
    

     

    匹配中间含有“e”的列

    select(x,contains("e"))
    

    匹配所有名称中包含“e”的列

    select(x,-name)
    

    在名字前面加个“-”,表示出了这一列以外,其他的列都显示

    select(x,1:3)
    

     

    也可以直接用列的编号表示要选择的列

    select(x,mz=name)
    

    选择列的时候,同时对列名进行重命名

    select(x,cmm=starts_with("s"))
    

    同样的可以对多列进行重命名,并选择

    select(x,name,everything())
    

    可以对数据进行排序,列较多的情况下把不需要排序的列用evything()直接列出。

    下面使用mutate()函数对数据进行增加列。

    mutate(x,yingyu=shuxue*1.2)
    

    transmute(x,yingyu=shuxue*1.2)
    

    可以看到,使用matate是在原来列的基础上增加一列,而使用transmute是新建一个数据框。

    mutate(x,shuxue=NULL)
    

    除了,增加列以外还可以把NULL赋值给列,已达到删除列的效果。  

  • 相关阅读:
    centos部署bladex boot 之docker安装
    git ssh key创建和github使用
    Debian root登录设置
    Linux软件源
    Secure backup
    Python简易web服务
    好久没有更新博客了
    Python实现无向图最短路径
    DWZ使用中遇到的坑
    tronado学习
  • 原文地址:https://www.cnblogs.com/wkslearner/p/5741591.html
Copyright © 2011-2022 走看看