dplyr 数据操作 常用函数(3)
接下了我们继续了解dplyr中有用的函数
1、if_else()
if_else主要用于在数据做判断用
1 2 3 4 5 | 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))<br><br> if_else (x[,3:4]>80, "优" , "差" ) |
以上结果是对数据框中第3和第4列数据进行判断后显示的。
2、lead()和lag()
lead(x, n = 1L, default = NA, order_by = NULL, ...)
lag(x, n = 1L, default = NA, order_by = NULL, ...)
lead和lag函数主要用于替换数据,lead表示由前向后替换,lag表示由后向前替换,n表示替换的个数,default表示要替换的结果,默认为na 。order_by是根据某一列进行排序。
1 2 3 4 5 | 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)) |
1 | mutate (x,huaxue= lag (x$shuxue,1,88)) |
以上操作是把shuxue的数据最后一位替换成88然后生成新列huaxue数据。
同理也可以用lead把数据进行数据替换。
3、nth()
nth(x, n, order_by = NULL, default = default_missing(x))
从向量中提取数据,注x为向量
1 | a<-5:15<br>b<-12:5<br> nth (a,3) |
1 | nth (a,-5) |
可以在n前面加符号的形式进行,反向提取数据。
1 | nth (a,3,b) |
根据b的序列方向进行提取,并且从b的第一个值开始进行读取。
4、n_distinct()
n_distinct(..., na.rm = FALSE)
计算非重复值的个数
1 2 | a<- sample (1:5,10,rep=T) a |
1 | n_distinct (a) |
[1] 4
函数的效果相当于length(unique(a))
5、order_by()
order_by(order_by, call)
order_by表示数据排序的形式,call表示用于输出结果的序列
1 | order_by (10:1, cumsum (1:10)) |
1 | cumsum (1:10) |
[1] 1 3 6 10 15 21 28 36 45 55
以上是1-10数据累加的结果
最后order_by的结果是用最大值55不断的减去每个累加结果得到的。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!