学习小组笔记DAY6--振华

package处理数据

镜像设置
  • R的包主要来源于CRAN网站和Biocductor,生信主要来源于Biochuctor
  • 镜像代码设置 options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
  • tools=>Global options=>packages
包的加载
  • library()
  • require()
装包三部曲
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) 
options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") 
install.packages("dplyr")
library(dplyr)

dplyr 包
  • dplyr是一个dplyr包主要用于数据清洗和整理,主要功能有:行选择、列选择、统计汇总、数据框交集等是非常高效、友好的数据处理包。
  • test <- iris[c(1:2,51:52,101:102),] iris 是R内置的一个数据集。
  • dplyr五个基础函数
    • mutate(),新增列,mutate(test, new = Sepal.Length * Sepal.Width)
    • select(),按列筛选,
      • 按列号筛选select(test,1),# 多列:select(test,C(1,5))
      • 按列名筛选select(test, Petal.Length, Petal.Width)
    • filter()筛选行 filter详解
      • 筛选1个filter(test, Species == "setosa")
      • 筛选指定 filter(test, Species == "setosa"&Sepal.Length > 5 )
      • 筛选filter(test, Species %in% c("setosa","versicolor"))
    • arrange(),按某1列或某几列对整个表格进行排序,arrange(test, Sepal.Length)默认从小到大排序 arrange(test, desc(Sepal.Length))#用desc从大到小
    • summarise():汇总计算平均值,标准差,中位数等。 summarise(test, mean(Sepal.Length), sd(Sepal.Length))# 计算Sepal.Length的平均值和标准差
    • group_by 定义分组变量,与summarise合用可高效处理数据
      1. 先按照Species分组,计算每组Sepal.Length的平均值和标准差group_by(test, Species)
      2. summarise(group_by(test, Species),mean(Sepal.Length), sd(Sepal.Length))
  • count统计某列的unique值 count(test,Species) 把重复元素或行给删除的向量、数据框
管道操作
  • 什么是管道操作?一个高效的管道操作工具包,通过管道的连接方式,让数据或表达式的传递更高效
  • 安装magrittrinstall ("magrittr")
  • 加载library(magrittr)
  • %>% 左边程序传递给右边test %>% group_by(Species) %>% summarise(mean(Sepal.Length), sd(Sepal.Length))
处理关系 lianjie
  • 內连inner_join,取交集 inner_join(test1, test2, by = "x") by="x"表示变量为x列
  • 左连保留左边及交集,left_join(test1, test2, by = 'x'),还有右边连接
  • 全连取并集,full_join( test1, test2, by = 'x')
  • 筛选连接匹配观测的方式与合并连接相同,但前者影响的是观测,而不是变量。# 行表示观测,列表示变量。
    • semi_join(x, y): 保留 x 表中与 y 表中的观测相匹配的所有观测。 semi_join(x = test1, y = test2, by = 'x')
    • anti_join(x, y): 丢弃 x 表中与 y 表中的观测相匹配的所有观测。```anti_join(x = test2, y = test1, by = 'x')
  • 简单合并:在相当于base包里的cbind()函数和rbind()函数;注意,
    • bind_rows()函数需要两个表格列数相同,横向合并bind_rows(test1, test2)
    • bind_cols()函数则需要两个数据框有相同的行数,纵向合并bind_cols(test1, test3)

你可能感兴趣的:(学习小组笔记DAY6--振华)