2023-10-25 13:22:43
浏览数 (1)
安装和加载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()函数则需要两个数据框有相同的行