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.dfid.df 就包含了每個月份與各使用者出現次數的原始資料。

繪製長條圖

使用 ggplot2geom_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()
使用者統計長條圖

參考資料

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago