R语法及绘图数据-R语言-图表-决策-Linux-Python

R for data Science(四)

2018-09-08  本文已影响11人  一路向前_莫问前程_前程似锦
Data transformation

这次我们继续学习
select()
mutate()
这两个函数
上次我们学习了filter函数是对行变量进行筛选,但是有时候,我们想对列变量筛选怎么办呢?
那我们就要知道select函数了
继续使用上次的数据集

一,通过列名筛选
select(flights, year, month, day)

代表筛选了 年月日三列

第二种写法,筛选从年到日中间所有变量,采用冒号过度
select(flights, year:day)
第三点需要注意的就是变量反选,如果在变量前面加上负号,则代表去除该列
select(flights, -(year:day)) #表示从数据框中去除从year到day中间所有的列
还有下面的常见函数 同时注意一点,这里好像不区分字母大小写
starts_with("abc"):匹配列名以abc开头的列

比如筛选以“time”开头的列

select(flights, starts_with("TIME"))select(flights, starts_with("time"))
image
ends_with("xyz"): 匹配列名以xyz结尾的列
contains("ijk"): 匹配列名中包含ijk的列
matches("(.)\1")这个是利用正则表达式,匹配任何一个有重复的字符
num_range("x", 1:3) 匹配 x1, x2 and x3,前后不等长,会自动填充

下面我们学一下如何对列变量进行顺序调整

比如我们想把time_hour, air_time这两列挪到第一二列,该怎么办呢?
select(flights, time_hour, air_time, everything())
image
这就成功了

mutate()

这个函数是代表重新生成一个新的变量,且变量在最后

flight=mutate(flights,gain = arr_delay - dep_delay,speed = distance / air_time * 60)select(flight,gain ,speed ,everything())
image

如果我们只想保留我们生成的变量,就要使用transmute()函数

transmute(flights, gain = arr_delay - dep_delay,hours = air_time / 60,gain_per_hour = gain / hours+ 
image

这样我们就指保留了生成的新变量

最后我们看一下一些操作符的含义

%/% 表示取整数部分

%% 取余数部分

cumsum(x) 连续取和

cummin(x) 连续取最小值

image
上一篇 下一篇

猜你喜欢

热点阅读