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
沒有進一步調查,df1
和 df2
中的 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 個變數,x
和 y
。然後你被告知 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)