一、創建數據框架
數據框架是 R 語言中一個非常重要的概念,它是一種類似於表格的數據結構,其中每一列可以是不同的數據類型,但是每一行必須是相同的長度。
創建一個數據框架最基本的方法就是使用 data.frame() 函數,我們可以用該函數來同時創建多個向量,並將它們組合成一個數據框架。以下是創建一個基本的數據框架的代碼示例:
name <- c("Alice", "Bob", "Cathy", "David")
age <- c(25, 30, 35, 40)
gender <- c("F", "M", "F", "M")
df <- data.frame(name, age, gender)
在這個例子中,我們創建了一個包含姓名、年齡和性別的數據框架,其中每一列都是一個向量。可以使用 is.data.frame() 函數來檢查這個對象是否為數據框架。
is.data.frame(df) #TRUE
二、數據框架操作
數據框架的操作包括增刪查改,以下分別進行詳細講解:
1.增加
數據框架的列可以通過新建一個向量並用 cbind() 函數添加到數據框架中,如下所示:
city <- c("Beijing", "Shanghai", "Guangzhou", "Shenzhen")
df <- cbind(df, city)
這樣,我們就將一個包含城市信息的向量添加到了數據框架中。還可以使用 rbind() 函數來添加新的行:
new_row <- c("Eric", 45, "M", "Hangzhou")
df <- rbind(df, new_row)
這個方法將一個新的向量作為行添加到了數據框架的末尾。
2.刪除
可以使用 $ 運算符或者 [,] 運算符來刪除數據框架中的列,如下所示:
df$city <- NULL #刪除列
df <- df[-4,] #刪除行
這裡我們使用了 $ 運算符來刪除了城市這一列,使用了 [-4,] 運算符來刪除了第四行。
3.查找
我們可以使用 $ 運算符來訪問數據框架中的每一列,也可以使用 [,] 運算符來查找特定的行和列,如下所示:
df$name #查找 name 列
df[2,] #查找第二行
df[,c("age", "gender")] #查找 age 和 gender 列
這裡我們使用 [,] 運算符來查找了第二行和 age、gender 兩列。
4.修改
我們可以通過 $ 運算符或者 [,] 運算符來修改數據框架中的數據,如下所示:
df$name[1] <- "Annie" #修改 name 列的第一個元素
df[1,"age"] <- 26 #修改第一行的 age 列
這裡我們使用 $ 運算符來修改了第一個元素,使用 [,] 運算符來修改了第一行的 age 列。
三、數據框架處理
數據框架在實際的數據分析中使用得非常頻繁,我們常常需要對數據框架進行各種各樣的處理。
1.排序
我們可以使用 order() 函數對數據框架中的某一列進行排序,如下所示:
df <- df[order(df$age),] #按照 age 升序排序
df <- df[order(df$age, decreasing = TRUE),] #按照 age 降序排序
這裡我們使用 order() 函數來對數據框架按照 age 列進行升序和降序排序。
2.過濾
我們可以使用邏輯運算符來對數據框架進行過濾,如下所示:
df[df$age > 30,] #過濾出 age 大於 30 的行
df[df$gender == "F" & df$age < 35,] #過濾出 gender 為 "F" 且 age 小於 35 的行
這裡我們使用了邏輯運算符來篩選出 age 大於 30 和 gender 為 “F” 且 age 小於 35 的行。
3.聚合
我們可以使用 dplyr 包提供的函數對數據框架進行聚合處理,如下所示:
library(dplyr)
df %>% group_by(gender) %>% summarise(mean_age = mean(age), max_age = max(age)) #按照 gender 列進行聚合
這裡我們使用了 dplyr 包提供的函數來對數據框架按照 gender 列進行聚合,計算了每個性別的平均年齡和最大年齡。
4.繪圖
我們可以使用 ggplot2 包提供的函數來對數據框架進行圖形化展示,如下所示:
library(ggplot2)
ggplot(df, aes(x=age, y=name, color=gender)) + geom_point() #按照 age 列和 name 列作為橫縱軸,gender 列作為顏色繪製散點圖
這裡我們使用了 ggplot2 包提供的函數來對數據框架繪製散點圖,並按照 gender 列的值進行了着色。
原創文章,作者:THDRI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/334701.html