📚 今日目標

  1. 瞭解R語言的基本概念和優勢
  2. 安裝R和RStudio
  3. 學習R基礎語法和數據結構
  4. 完成第一個簡單的數據分析

🛠️ 第一部分:環境搭建

1.1 安裝R

  • 訪問R官網
  • 選擇CRAN鏡像下載
  • 安裝適合你操作系統的版本

1.2 安裝RStudio

  • 訪問RStudio官網
  • 下載免費的RStudio Desktop版本
  • 安裝並啓動

1.3 界面熟悉

# 控制枱(Console):直接執行代碼
# 腳本編輯器(Script):編寫和保存代碼
# 環境(Environment):查看當前變量
# 文件/圖表/幫助窗口

📝 第二部分:基礎語法

2.1 第一個R程序

# 在控制枱輸入
print("Hello, R World!")

# 或者直接輸入
"Hello, R World!"

2.2 基本運算

# 算術運算
5 + 3      # 加法
10 - 4     # 減法
6 * 7      # 乘法
15 / 3     # 除法
2 ^ 3      # 冪運算
9 %% 4     # 取餘
9 %/% 4    # 整除

# 比較運算
5 > 3      # 大於
5 == 5     # 等於
5 != 3     # 不等於

2.3 變量賦值

# 使用 <- 賦值
x <- 10
y <- 5

# 使用 = 賦值(較少用)
z = 20

# 查看變量
x
print(x)

# 查看所有變量
ls()

# 刪除變量
rm(x)

🧮 第三部分:數據類型

3.1 基本數據類型

# 數值型
num <- 3.14
class(num)  # 查看類型

# 字符型
char <- "Hello R"
class(char)

# 邏輯型
bool <- TRUE
bool2 <- FALSE
class(bool)

# 因子型(用於分類數據)
gender <- factor(c("Male", "Female", "Male"))
gender

3.2 基本數據結構

# 向量 - 最基本的數據結構
vec <- c(1, 2, 3, 4, 5)  # 數值向量
char_vec <- c("a", "b", "c")  # 字符向量
logic_vec <- c(TRUE, FALSE, TRUE)  # 邏輯向量

# 向量操作
length(vec)    # 長度
vec[1]         # 索引(注意:R索引從1開始!)
vec[2:4]       # 切片
vec[vec > 2]   # 條件篩選

# 矩陣
mat <- matrix(1:9, nrow = 3, ncol = 3)
mat
dim(mat)  # 維度

# 數據框 - 最常用的數據結構
df <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  age = c(25, 30, 35),
  score = c(85, 92, 78)
)
df
View(df)  # 表格形式查看

📊 第四部分:簡單數據分析實踐

4.1 創建示例數據

# 創建學生成績數據框
students <- data.frame(
  student_id = 1:10,
  name = c("張明", "李華", "王芳", "趙強", "劉洋", 
           "陳靜", "楊光", "周婷", "吳磊", "鄭潔"),
  math = c(85, 92, 78, 88, 95, 67, 73, 89, 94, 81),
  english = c(88, 85, 92, 79, 83, 90, 86, 77, 91, 84),
  science = c(90, 87, 83, 91, 89, 76, 84, 92, 88, 79)
)

# 查看數據結構
str(students)      # 結構
summary(students)  # 統計摘要
head(students, 3)  # 前3行

4.2 基本數據分析

# 計算平均分
students$average <- (students$math + students$english + students$science) / 3

# 查看平均分最高的學生
students[which.max(students$average), ]

# 計算各科平均分
colMeans(students[, c("math", "english", "science")])

# 添加總分列
students$total <- students$math + students$english + students$science

# 按總分排序
sorted_students <- students[order(-students$total), ]
head(sorted_students)

📈 第五部分:簡單可視化

5.1 基礎繪圖

# 散點圖:數學 vs 英語成績
plot(students$math, students$english,
     main = "數學與英語成績關係",
     xlab = "數學成績",
     ylab = "英語成績",
     col = "blue",
     pch = 19)  # 實心圓點

# 直方圖:數學成績分佈
hist(students$math,
     main = "數學成績分佈",
     xlab = "分數",
     ylab = "頻數",
     col = "lightblue",
     border = "black")

# 箱線圖:各科成績比較
boxplot(students[, c("math", "english", "science")],
        main = "各科成績分佈",
        ylab = "分數",
        col = c("lightblue", "lightgreen", "lightyellow"))

💻 今日練習

練習1:基礎操作

# 1. 創建向量v,包含1到20的偶數
# 2. 計算這個向量的平均值、總和、長度
# 3. 找出大於10的元素

練習2:數據框操作

# 使用內置數據集mtcars
# 1. 查看mtcars的前5行
# 2. 查看數據維度
# 3. 計算mpg(每加侖里程)的平均值
# 4. 找出mpg最高的車型

練習3:簡單分析

# 創建自己的小型數據集(如:每月支出)
# 1. 創建包含月份和支出兩列的數據框
# 2. 計算平均月支出
# 3. 找出支出最高的月份
# 4. 繪製支出折線圖

📌 今日總結

重點掌握:

  • ✓ R和RStudio的安裝
  • ✓ 基本語法和運算
  • ✓ 四種基本數據類型
  • ✓ 向量和數據框的使用
  • ✓ 簡單的數據分析和可視化

常見問題:

  1. R索引從1開始,不是0!
  2. 賦值使用 <-,不是 =
  3. 函數調用使用括號,如 mean(x)
  4. 查看幫助:?函數名 或 help(函數名)

🎯 明日預告

第二天:數據導入導出與數據清洗

  • 讀取CSV、Excel文件
  • 數據處理:篩選、排序、合併
  • 處理缺失值
  • 數據轉換

學習建議

  1. 所有代碼都要親手敲一遍,不要複製粘貼
  2. 遇到錯誤不要慌,仔細閲讀錯誤信息
  3. 使用?查看函數幫助文檔
  4. 保存今天的代碼腳本(File → Save As → day1.R)

有問題隨時記錄,明天我們繼續深入學習!💪