• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

R 統計出現次數、繪製長條圖教學與範例

介紹如何使用 R 語言統計文字資料的出現次數,並以 ggplot2 繪製長條圖。

原始資料

這裡我們的原始資料是一個包含日期與使用者 ID 的逗點分隔檔(CSV),資料格式類似這樣:

date,id
11-Oct-2018,u3928822
29-Oct-2018,u3928822
08-Nov-2018,u3928822
08-Nov-2018,u3928822
08-Nov-2018,u3928822
08-Nov-2018,nud06323052
08-Nov-2018,k9525068
08-Nov-2018,nud06323052
09-Nov-2018,robert6323

這些資料代表使用者登入系統的時間點,我們希望統計出每個月的使用者登入次數,以及每個使用者的總登入次數。

統計出現次數

首先以 read.csv 從 CSV 檔案中讀取使用者登入的時間資料:

# 讀取記錄檔
logfile <- read.csv("logfile.csv", header = TRUE)

從日期資料中取出年分與月份,並將月份名稱轉為數值,方便後續處理:

# 從日期中取出年分與月份,並將月份名稱轉為數值
month.num <- match(substr(logfile$date, 4, 6), substr(month.name, 0, 3))
logfile$month <- paste0(
  substr(logfile$date, 8, 12), "/",
  sprintf("%02d", month.num))

以 table 計算每個月份與各使用者的出現次數:

# 統計月份出現次數
month.df <- data.frame(table(logfile$month))
names(month.df)<-c("Month", "Freq")

# 統計使用者出現次數
id.df <- data.frame(sort(table(logfile$id)))
names(id.df)<-c("ID", "Freq")

這裡的 month.df 與 id.df 就包含了每個月份與各使用者出現次數的原始資料。

繪製長條圖

使用 ggplot2 的 geom_bar 將出現次數的資料繪製為長條圖(barplot),由於這種圖通常包含非常大量的資料,所以我們使用 PDF 檔案格式來輸出圖檔。

library(ggplot2)

# 繪製每月統計長條圖
pdf("month.pdf", width = 7, height = 7)
ggplot(month.df, aes(Month, Freq)) +
  geom_bar(stat = "identity") +
  coord_flip()
dev.off()
每月統計長條圖
每月統計長條圖
# 繪製使用者統計長條圖
pdf("id.pdf", width = 7, height = 70)
ggplot(id.df, aes(ID, Freq)) +
  geom_bar(stat = "identity") +
  coord_flip()
dev.off()
使用者統計長條圖
使用者統計長條圖

參考資料

  • The R Graph Gallery:Basic barplot with ggplot2
  • The R Graph Gallery:Most basic streamgraph

分類:R

主要資訊欄

搜尋

近期文章

  • Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤
  • Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例
  • Linux 網路設定 ip 指令用法教學與範例
  • Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例
  • Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例
  • Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例
  • Linux 以 Cryptsetup 與 LUKS 加密磁碟教學與範例
  • Linux 使用 age 簡潔的加密、解密工具使用教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide