swirl包——R語言入門絕佳指引
在寫這個(gè)之前才写,我想安利一波swirl包。
在這個(gè)信息爆炸的時(shí)代没咙,我們要做的不是收集資料,而是做選擇千劈。
如果要用一個(gè)包來入門R祭刚,我會(huì)毫不猶豫的推薦swirl包。
install.packages('swirl')
require(swirl)
swirl() #開啟swirl學(xué)習(xí)
0 #退出swirl
dplyr
閱讀官方文檔https://cran.r-project.org/web/packages/dplyr/dplyr.pdf
dplyr is a grammar of data manipulation, providing a consistent set of verbs that help you solve the most common data manipulation challenges.
dplyr包主要用于數(shù)據(jù)框的數(shù)據(jù)處理。
安裝并調(diào)用dplyr
install.packages('dplyr')
library(dplyr)
?dplyr
dplyr: a grammar of data manipulation
Description
dplyr provides a flexible grammar of data manipulation. It's the next iteration of plyr, focused on tools for working with data frames (hence thed in the name).
數(shù)據(jù)準(zhǔn)備
nycflights13包中的flights作為example涡驮,安裝調(diào)用暗甥。數(shù)據(jù)為2013年從紐約出發(fā)的336776次航班信息
解釋一下列名含義:
day日期,dep_time起飛時(shí)間捉捅,sched_dep_time計(jì)劃起飛時(shí)間撤防,dep_delay起飛延誤時(shí)間,arr_time到達(dá)時(shí)間棒口,sched_arr_time計(jì)劃到達(dá)時(shí)間寄月,arr_delay到達(dá)延誤時(shí)間,carrier航空公司縮寫无牵,flight航班漾肮,tailnum飛機(jī)尾號(hào),origin出發(fā)地茎毁,dest目的地克懊,
install.packages('nycflights13')
library(nycflights13)
flights
篩選數(shù)據(jù)filter
#篩選11月30日的航班
filter(flights,month==11,day==30)
#篩選11、12月的航班
filter(flights,month %in% c(11,12))
數(shù)據(jù)排列arrange
#數(shù)據(jù)框按照年七蜘、月谭溉、日的升序排列
arrange(flights,year,month,day)
#按照arr_delay降序排列
arrange(flights,desc(arr_delay))
數(shù)據(jù)選擇select
#按照年、月崔梗、日選擇列
select(flights,year,month,day)
#選擇年到日的列
select(flights,year:day)
#選擇time_hour夜只,air_time兩個(gè)變量在前,其他的在后
select(flights,time_hour,air_time,everything())
變形mutate
#數(shù)據(jù)集只保留新的變量a蒜魄,a=arr_delay-dep_delay)
transmute(flights,a=arr_delay-dep_delay)
#在數(shù)據(jù)集的末尾添加新變量a扔亥,a=arr_delay-dep_delay
mutate(flights,a=arr_delay-dep_delay)
分組group、概括summarize
#按照天分組
by_day<-group_by(flights,year,month,day)
#對每天的延誤時(shí)間去均值谈为,summarize針對分組進(jìn)行運(yùn)算
summarize(by_day,delay=mean(dep_delay,na.rm=T))
抽樣sample
#隨機(jī)無重復(fù)的取10行數(shù)據(jù)
sample_n(flights, 10)
#隨機(jī)有重復(fù)的取50行數(shù)據(jù)
sample_n(flights, 50, replace = TRUE)
#隨機(jī)無重復(fù)的以hour值做權(quán)重取10行數(shù)據(jù)
sample_n(flights, 10, time = hour)