<div style="text-align: right; background-color: #f5f5f5; padding: 4px 12px; border-radius: 5px; display: inline-block; float: right; font-size: 1.4rem;">
Last Updated:2025/07/01
</div>
# RStudio 操作範例說明
[TOC]
<br>
本範例使用政府資料開放平台的 [新竹市空氣品質資料](https://data.gov.tw/dataset/34773) 進行基本資料分析與折線圖繪製。
請先下載原始資料檔案(CSV 格式):**`aqx_p_212.csv`**

<br>
## 透過傳輸檔案節點上傳 `.csv` 檔案
請使用 Windows PowerShell 將下載好的 CSV 檔案上傳至創進一號(Forerunner 1)來進行傳輸。
<div style="border: 1.5px solid #B7B7B7; padding: 1rem 1rem; border-radius: 5px; color: #333;">
🔗 <strong>詳細教學請參閱</strong>
<a href="https://man.twcc.ai/@f1-manual/transport_ip#%E6%AA%94%E6%A1%88%E5%82%B3%E8%BC%B8%E7%AF%80%E9%BB%9E%E6%93%8D%E4%BD%9C%E6%B5%81%E7%A8%8B" target="_blank" style="color: #007ACC;">
檔案傳輸節點操作流程
</a>
</div>
<br>
```
# 透過傳輸檔案節點 f1-dtn01.nchc.org.tw 或是 f1-dtn02.nchc.org.tw 上傳資料
# user 改成創進一號的username
# put 指令上傳你的檔案
PS C:\Users\XXX\Downloads> sftp user@f1-dtn01.nchc.org.tw
Connected to f1-dtn01.nchc.org.tw.
sftp> put aqx_p_212.csv
Uploading aqx_p_212.csv to /home/user/aqx_p_212.csv
aqx_p_212.csv 100% 69KB 1.2MB/s 00:00
sftp>
```
<br>
---
<br>
## 連線進入創進一號
:::warning
<i class="fa fa-bullhorn" aria-hidden="true"></i> **備註**:
由於 Open OnDemand 是透過 **計算節點** 取得運算資源,而計算節點無對外網路連線,因此需透過其他方式來安裝 Extension。
:::
**1. 登入 Login Node**
<div style="border: 1.5px solid #B7B7B7; padding: 1rem 1rem; border-radius: 5px; color: #333;">
🔗 <strong>詳細教學請參閱</strong>
<a href="https://man.twcc.ai/@AI-Pilot/ByTJJNVz1g" target="_blank" style="color: #007ACC;">
主機登入/登出教學連結
</a>
</div>
<br>
```bash
#登入主機後確認資料存放位置
[user@ilgn01 ~]$ ll
-rw-r--r-- 1 u5846412 TRI1123529 71151 Feb 13 15:30 aqx_p_212.csv
```
**2. 載入 RStudio 模組**
請先清空模組並載入 RStudio 模組(此例使用版本 4.4.0):
```bash
[user@ilgn01 ]$ ml purge #清除現有模組
[user@ilgn01 ]$ ml tools/rstudio/4.4.0 #載入 RStudio 模組
```
**3. 安裝 R 套件(以 ggplot2 為例)**
進入 RStudio 的 console,並使用指令 `> install.packages(“ggplot2”, “~/R/library-4.4/”)` 安裝套件至自定的使用者目錄
```bash
[user@ilgn01 ]$ R #進到 RStudio 的 console
R version 4.4.0 (2024-04-24) -- "Puppy Cup"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu
...
> install.packages("ggplot2", "~/R/library-4.4/")
trying URL 'https://p3m.dev/cran/__linux__/jammy/latest/src/contrib/ggplot2_3.5.1.tar.gz'
...
* installing *binary* package ‘ggplot2’ ... #安裝套件 ggplot2
* DONE (ggplot2)
The downloaded source packages are in
‘/tmp/RtmpDuYa5G/downloaded_packages’
> q() #安裝完成即可退出 R
[user@ilgn01 ]$
```
<br>
---
<br>
## 回到 Open OnDemand 開啟 RStudio Server 介面
完成資料上傳與套件安裝後,即可透過 Open OnDemand 開啟 RStudio Server 進行程式撰寫與執行。
**1. 確認套件是否安裝成功**
進入 RStudio Server 網頁介面後,點選右下角的 `Packages` 分頁,確認 `ggplot2` 已成功安裝。

**2. 開啟 R Script 編輯器**
- 建立新檔案
依序點選 `File → New File → R Script` 來建立一個新的 R 腳本。
儲存檔案時會存放於創進一號使用者的家目錄中,建議預先建立資料夾以便分類與管理。

- 開啟既有檔案
若已將 R 檔案預先上傳至創進一號,可透過 `File → Open File` 來開啟現有程式碼。

3. 載入資料並執行分析
本範例將使用 [新竹市空氣品質資料](https://data.gov.tw/dataset/34773) 進行資料分析。請先將下載的 `aqx_p_212.csv` 上傳至主機,並執行以下程式碼:
```bash
# Load data
data <- read.csv("aqx_p_212.csv", stringsAsFactors = FALSE)
data$monitordate <- as.POSIXct(data$monitordate, format = "%Y/%m/%d %H:%M")
data$concentration <- as.numeric(data$concentration)
data <- na.omit(data)
itemnames <- unique(data$itemengname)
# Plot
plot(NA,
xlim = range(data$monitordate),
ylim = range(data$concentration, na.rm = TRUE),
xlab = "Monitor Date",
ylab = "Concentration",
main = "Air Quality Over Time",
xaxt = "n")
axis(1, at = seq(min(data$monitordate), max(data$monitordate), by = "1 hour"),
labels = format(seq(min(data$monitordate), max(data$monitordate), by = "1 hour"), "%Y-%m-%d %H:%M"),
las = 2, cex.axis = 0.7)
colors <- rainbow(length(itemnames))
for (i in seq_along(itemnames)) {
item_data <- data[data$itemengname == itemnames[i], ]
lines(item_data$monitordate, item_data$concentration, col = colors[i], lwd = 2)
}
legend("topright", legend = itemnames, col = colors, lty = 1, lwd = 2, pch = 16)
```
4. 執行程式碼
撰寫完成後,點選工具列上的 **「Run」** 按鈕即可執行程式並產出圖表。

:::warning
<i class="fa fa-bullhorn" aria-hidden="true"></i> **備註**:
- 若出現以下警告訊息:
表示在轉換資料時出現無法識別的值(如非數字),R 將其轉為 `NA`。
請檢查資料內容,特別是欄位 **concentration**,是否包含非數值內容(如字母 `x`)。
```bash
Warning message:
In eval(ei, envir) : NAs introduced by coercion
```
- 解決方式:將該欄位的非數值資料(如 `x`)移除後重新執行程式,即可消除警告訊息。
- 資料清理前後對照圖如下:

:::
<br>
<br>
<br>
<!-- 作者資訊 -->
<div style="border-top: 2px solid #eee; padding: 28px 20px; display: flex; justify-content: space-between; align-items: center; font-family: sans-serif;">
<div>
<div style="font-size: 20px; font-weight: bold; margin-bottom: 8px;"> RStudio 操作範例說明</div>
<div style="max-width: 640px; color: #444; line-height: ;">
Author:Pei-Hsun Kuan, Jue-Jun Wu<br>Date:2025-02-14</div>
</div>
<div>
<a href="https://man.twcc.ai/@f1-manual/manual" target="_blank" style="display: inline-block;">
<img src=" https://iservice.nchc.org.tw/nchc_service/images/nchc/pi4.png" alt="創進一號使用說明" style="height: 80px;">
</a>
</div>
</div>