R常用创建函数与管道操作

R常用创建函数与管道操作

一、常用创建函数

1.偏移函数

lead()和lag()函数可以返回一个序列的领先值和滞后值。它们可以计算出序列的移动差值(如x – lag(x))或发现序列何时发生了变化(x != lag(x))

a<-c(1:10);a
lag(a)
lead(a)

在这里插入图片描述
利用lag函数和lead函数也可以用来求差分,不过会有缺失值

a-lag(a)#等于
diff(a)

在这里插入图片描述

lead(a)-lag(a)
diff(1:10, 2)

在这里插入图片描述
R 提供了计算累加和、累加积、累加最小值和累加最大值的函数:cumsum()、cumprod()、 cummin() 和 cummax();dplyr 还提供了 cummean() 函数以计算累加均值

cumsum(a)
cumprod(a)
cummin(a)
cummax(a)
cummean(a)

在这里插入图片描述

二、管道操作

假设我们想要研究每个目的地的距离和平均延误时间之间的关系。使用已经了解的dplyr包功能,你可能会写出以下代码:
数据在下面这篇文章中找
dplyr详解

(by_dest <- group_by(flights, dest)) 
delay <- summarize(by_dest,  count = n(),  dist = mean(distance, na.rm = TRUE),  delay = mean(arr_delay, na.rm = TRUE) )
delay <- filter(delay, count > 20, dest != "HNL")
ggplot(delay,aes(dist,delay))+geom_point()+geom_smooth()

在这里插入图片描述这段代码写起来有点令人泄气,因为不得不对每个中间数据框命名,尽管我们根本不关心这一点。命名是很难的,这样做会影响我们的分析速度。解决这个问题的另一种方法是使用管道,%>%:

delays <- flights %>%  group_by(dest) %>%  summarize(  count = n(),  dist = mean(distance, na.rm = TRUE), 
 delay = mean(arr_delay, na.rm = TRUE) ) %>% 
 filter(count > 20, dest != "HNL")

这种方法的重点在于转换的过程,而不是转换的对象,这使得代码具有更好的可读性。你可以将其读作一串命令式语句:分组,然后摘要统计,然后进行筛选。在阅读代码时,%>%最好读作“然后”。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值