百日筑基篇——数据处理工具包dplyr(R语言初识三)

百日筑基篇——数据处理工具包dplyr(R语言初识三)


前言

作为一个生物专业的学生,对计算机编程语言有较多兴趣,在生信分析中,R语言的学习是必不可少的,作为一个萌新,希望以这种方式,对自己的学习不断进行复盘,同时希望多多指教!!


一、dplyr包是什么?

dplyr 是 R 语言中一个非常流行的数据操作包,它提供了一组简洁、一致的函数,用于对数据进行筛选、排序、汇总、变换等操作。处理数据框时,建议使用dplyr包进行操作

二、函数详解

1. 数据筛选

filter() 函数用于按照某些条件筛选数据
select() 函数用于按照某些列选择数据
arrange() 用于按照某些列排序数据。
slice() 函数用于切片,取出数据的任意行
distinct() 相当于unique函数,用于去除重复行

library(dplyr)
ls("package:dplyr")
dplyr::filter(iris,iris$Sepal.Length>7)	#filter函数通过指定条件对数据进行筛选
dplyr::distinct(rbind(iris[1:10,],iris[1:15,]))	#相当于unique函数,用于去除重复行
filtered_data <- distinct(iris, Species, .keep_all = TRUE)
dplyr::sample_n(iris,5)
dplyr::sample_frac(iris,0.2)	#按比例随机抽样
dplyr::slice(iris,10:13)	#slice函数用于切片,取出数据的任意行
dplyr::arrange(iris,iris$Sepal.Length)	#按Sepal.Length进行排序,默认升序
dplyr::arrange(iris,desc(iris$Sepal.Length))	#desc,降序;或者前加-号
iris %>% select(Species) 	#选择变量   

2. 数据分组与汇总

mutate():用于在现有数据基础上创建新的变量。
summarize():用于进行数据的汇总统计。
group_by():用于对数据进行分组处理。

summarise(iris,avg=mean(iris$Sepal.Length),max_1 = max(iris$Sepal.Length))
dplyr::group_by(iris,Species) %>% print(n=40)#对数据进行分组
iris %>% group_by(Species) %>% summarise(nnn=median(iris$Sepal.Length)) %>% arrange(nnn)
iris[,6] <- iris$Sepal.Length+iris$Sepal.Width
dplyr::mutate(iris,new=iris$Sepal.Length+iris$Sepal.Width)#mutate函数添加新变量

3. 数据的连接与合并

dplyr包提供了多个函数用于合并多个数据框,如inner_join(内连接)、left_join(左连接)、right_join(右连接)和full_join(全连接)等。

a <- data.frame(x1=c("A","B","C"),x2=c(1,2,3))
c<- data.frame(x1=c("A","B","D"),x3=c(TRUE,FALSE,TRUE))
dplyr::left_join(a,c,by="x1")	#左连接,以a的x1列为基础进行连接
dplyr::right_join(a,c,by="x1")
dplyr::inner_join(a,c,by="x1")	#内连接,取x1的交集
dplyr::full_join(a,c,by="x1")	#全连接,取x1的并集
dplyr::semi_join(a,c,by="x1")	#半连接,根据右侧表对左侧表进行过滤
dplyr::anti_join(a,c,by="x1")	#反链接,与半连接互补
mtcars
first <- slice(mtcars,1:15)
first1 <- slice(mtcars,10:25)
intersect(first,first1)	#取交集
union(first,first1	)#取非冗余的并集,去除掉重复部分再进行合并
nrow(first1)
dplyr::union_all(first,first1)	#取并集
dplyr::setdiff(first,first1)	#取数据的补集,即左侧数据中右侧数据没有的部分
dplyr::setdiff(first1,first)

三、流程处理

# 加载dplyr包
library(dplyr)

# 读取数据集
data <- read.csv("data.csv")  # 替换"data.csv"为你的数据文件名或路径

# 数据处理和转换操作
result <- data %>%
  filter(condition) %>%
  select(columns) %>%
  group_by(variables) %>%
  summarise(new_variable = function(column)) %>%
  arrange(order_column) %>%
  mutate(new_column = expression)

# 输出结果
print(result)

# 保存结果到新的数据集或文件
write.csv(result, "output.csv")  # 替换"output.csv"为你想要保存结果的文件名或路径

总结

好了,今天的分享就到这里了,对dplyr包的掌握,有利于对数据进行处理,方便后续的操作。当然不仅仅只有使用dplyr包这一种方法。还有许多种实现方法,熟练多种方法,有利于更游刃有余的处理数据。
大丈夫生于天地之间,当提三尺剑立不世之功

– 2023-7-5 筑基篇

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星石传说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值