DAY6-学习R包

2023-10-25 13:22:43 浏览数 (3)

安装和加载R包

  • 镜像设置
  • 使用R配置文件
  • 使用file.edit()编辑文件——输入file.edit('~/.Rprofile')
  • options("repos" =c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) #对应清华源
  • options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/") #对应中科大源
  • 保存文件,重启
  • 运行options()$repos和options()$BioC_mirror 即配置好安装R包安装命令是install.packages(“包”)或BiocManager::install(“包”) install.packages("dplyr") 加载 library和require 使用一个R包需先安装再加载 library(dplyr)

dplyr五个基础函数

mutate(),新增列——mutate(test, new = Sepal.Length*Sepal.Width)

  • 要修改的数据框的名称
  • 将创建的新变量的名称
  • 将分配给新变量的值

select()

  • 按列筛选
  • select(test,1)#筛选test中的第一列
  • select(test,c(1,5))#筛选test中的第一列和第五列
  • select(test,Sepal.Length)#筛选test中名为Sepal.Length的一列
  • 按列名筛选
  • select(test, Petal.Length, Petal.Width)
  • 选择字符向量中的列,select中不能直接使用字符向量筛选,需要使用one_of函数
  • vars <- c("Petal.Length", "Petal.Width")
  • select(test, one_of(vars))

filter()筛选行

  • filter(test, Species == "setosa")#筛选名为setosa的行
  • filter(test, Species == "setosa"&Sepal.Length > 5 )#筛选名为setosa同时Sepal.Length > 5的行
  • filter(test, Species %in% c("setosa","versicolor"))#筛选test中有"setosa","versicolor"的行

arrange(),按某1列或某几列对整个表格进行排序

  • arrange(test, Sepal.Length)#默认从小到大排序
  • arrange(test, desc(Sepal.Length))#用desc从大到小

summarise():汇总

  • summarise(test, mean(Sepal.Length), sd(Sepal.Length))
  • mean()计算平均值
  • sd()计算标准差
  • group_by(test, Species)#按照Species分组并汇总
  • summarise(group_by(test,Species),mean(Sepal.Length),sd(Sepal.Length))#按照Species分组,计算每组Sepal.Length的平均值和标准差并汇总

dplyr两个实用技能

  • 管道操作 %>% —— 相当于将左边的作为右边函数的第一个参数,快捷键: ctrl shift M(不管用——改为Ctrl+a)
代码语言:txt复制
 test %>% 
 group_by(Species) %>%  
 summarise(mean(Sepal.Length), sd(Sepal.Length))
  • count统计某列的unique值
  • count(test,Species)

dplyr处理关系数据(将2个表进行连接)

  • 內连inner_join,取交集——inner_join(test1, test2, by = "x")
  • 左连left_join——left_join(test1, test2, by = 'x')
  • 全连full_join——full_join( test1, test2, by = 'x')
  • 半连接:返回能够与y表匹配的x表所有记录semi_join——semi_join(x = test1, y = test2, by = 'x')
  • 反连接:返回无法与y表匹配的x表的所记录anti_join——anti_join(x = test2, y = test1, by = 'x')

简单合并

  • bind_rows()函数需要两个表格列数相同
  • bind_cols()函数则需要两个数据框有相同的行

0 人点赞