R 語言資料框介紹

資料框可能是你在分析中最常使用的資料結構。資料框是一種特殊的列表,用於儲存不同類的相同長度的向量。你可以使用 data.frame 函式建立資料框。下面的示例通過將數字和字元向量組合到資料框中來顯示這一點。它使用:運算子,它將建立一個包含從 1 到 3 的所有整數的向量。

df1 <- data.frame(x = 1:3, y = c("a", "b", "c"))
df1
##   x y
## 1 1 a
## 2 2 b
## 3 3 c
class(df1)
## [1] "data.frame"

資料框物件不使用引號進行列印,因此列的類並不總是很明顯。

df2 <- data.frame(x = c("1", "2", "3"), y = c("a", "b", "c"))
df2
##   x y
## 1 1 a
## 2 2 b
## 3 3 c

沒有進一步調查,df1df2 中的 x 列無法區分。str 函式可用於描述比類更詳細的物件。

str(df1)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: int  1 2 3
##  $ y: Factor w/ 3 levels "a","b","c": 1 2 3
str(df2)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: Factor w/ 3 levels "1","2","3": 1 2 3
##  $ y: Factor w/ 3 levels "a","b","c": 1 2 3

在這裡你可以看到 df1 是一個 data.frame 並且有 3 個觀察 2 個變數,xy。然後你被告知 x 的資料型別為整數(對於這個類來說並不重要,但對於我們的目的,它的行為類似於數字),y 是一個有三個級別的因子(我們沒有討論的另一個資料類)。***重要的是要注意,預設情況下,資料幀會將字元強制轉換為因子。***可以使用 stringsAsFactors 引數更改預設行為:

df3 <- data.frame(x = 1:3, y = c("a", "b", "c"), stringsAsFactors = FALSE)
str(df3)
## 'data.frame':    3 obs. of  2 variables:
##  $ x: int  1 2 3
##  $ y: chr  "a" "b" "c"

現在 y 列是一個字元。如上所述,資料幀的每個必須具有相同的長度。嘗試從具有不同長度的向量建立 data.frame 將導致錯誤。 (嘗試執行 data.frame(x = 1:3, y = 1:4) 以檢視生成的錯誤。)

作為資料幀的測試用例,預設情況下由 R 提供一些資料。其中一個是虹膜,裝載如下:

mydataframe <- iris
str(mydataframe)