搜尋感興趣的網誌

所有文章連結

2022年3月20日 星期日

共享單車Cyclistic案例分析 | Data Analysis Cyclistic by R – 語法解析(中)

 


這篇繼續分享分析數據中使用的函數,這些函數真的不是一天兩天能夠學的完,但是掌握一些好用的函數是可以事半功倍的!

 

Data Analysis Cyclistic文章 >> 請點這裡進入

語法解析() >> 請點這裡進入

小雷的Kaggle >> 請點這裡進入

小雷的Github >> 請點這裡進入

觀看完整報告,請至雲端下載PDF : 點我連結

---------------------------------------------做個分隔線------------------------------------------------

 

ordered() : 透過這個函數可以將數值轉化為因子並進行等級的分類後排序,對於有限數值可以很輕易的設定成自己想要的順序,諸如日期、小時、年分等,屬於factor的操作函數之一。

所屬Package : base

基礎語法 : ordered(x, levels = c())

使用時機 : 將日期等數值進行等級的排序,由左至右,由小到大。

例子 :

combine_datas_clearn$week <- ordered(combine_datas_clearn$week, levels = c("Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Saturday", "Sunday" ))
 
Monday    Tuesday   Wednesday Thursday  Friday    Saturday  Sunday     
Levels: Friday < Thursday < Wednesday < Tuesday < Monday < Saturday < Sunday

 

aggregate() : 將數據聚合成一個子集進行觀察,並且統計對應的值,在進行數據觀察時好用,很輕易的將數據分類並檢視,使用” ~ ”進行主要子集欄位,使用” + “添加欄位進入觀察,需要注意的是,末端一定要有聚合的方式,也就是甚麼樣的統計方法。

所屬Package : stats

基礎語法 : aggregate(x, 要聚合的項目, FUN = ,..)

FUN : maxminsum….

使用時機 : 需要將數據進行子集的比對時。

例子 :

aggregate(data = combine_datas_clearn, ride_length_minutes ~ member_casual + week, FUN = mean)
 
   member_casual      week ride_length_minutes
1         casual    Friday            62.89725
2         member    Friday            13.74218
3         casual  Thursday            61.38308
4         member  Thursday            13.73213
5         casual Wednesday            61.97770
6         member Wednesday            13.73333
7         casual   Tuesday            59.93933
8         member   Tuesday            13.76905
9         casual    Monday            56.20478
10        member    Monday            14.04288
11        casual  Saturday            55.53190
12        member  Saturday            16.14890
13        casual    Sunday            59.69009
14        member    Sunday            15.33291
 

 

n = () : 算是一個簡易型的sum(),但是有使用上的函數限制,一定要搭配著使用,會自動幫你計算當前分類的項目大小總數。

所屬Package : summarisemutatefilter中特殊用法。

基礎語法 : summarise(n = ())

使用時機 : 計算分類的項目總數

例子 :

user_sum <- combine_datas_clearn %>%
    group_by(member_casual) %>%
    summarise(total_riders = n())
 
  member_casual total_riders
  <chr>                <int>
1 casual              902182
2 member             2973860

 

paste() : 可以將character連接在一起的函數,或是將不是字符的部分轉換後進行連接,也可以設置分隔的方式。

所屬Package : base

基礎語法 : paste(需要連接的部分, sep = “”)

使用時機 : 需要將字符連接

例子 :

per_rider <- paste(
    round(user_sum$total_riders / sum(user_sum$total_riders) * 100, digits = 2), "%", sep = " "
)
"23.28 %" "76.72 %"

 

difftime() : 日期的計算在數據中算是很重要又頗麻煩的部分, 有時想知道時間間隔差了多少時,difftime()這個函數可以簡單的計算出來,需注意的是時間的計算需要先轉換為日期格式。

所屬Package : base

基礎語法 : difftime(time2 – time1)

使用時機 : 計算時間差時

例子 :

time_start <- as.POSIXct(c("2022-03-01 15:03:20"))
time_end <- as.POSIXct(c("2022-03-05 20:20:20"))
time_diff <- difftime(time_end, time_start)
 
r$> time_start
[1] "2022-03-01 15:03:20 CST"
r$> time_end
[1] "2022-03-05 20:20:20 CST"
r$> time_diff
Time difference of 4.220139 days

沒有留言:

張貼留言

其他文章

看看精選文章

納希克房價分析 | Nashik Apartment Price Analyze – 語法解析(上)

  這次 Nashik 的房價分析有上傳至 Kaggle ,有興趣的朋友可以前往閱覽, RMarkdown PDF 報告存放在 Google 雲端,程式碼則是存放於 Github ,照慣例會分享好用的函式語法,雖說基本的 Packages 與語法可能很多人都會完整的閱覽,但是實際...