R中最常用的六種數據結構
已發表: 2020-02-03作為軟件程序員和編碼員,您必須意識到需要變量來存儲數據。 這些變量保留在不同的內存位置以存儲值。 因此,創建變量意味著在內存中保留一些空間。 正是這些數據按數據結構排列,以便在計算機中有效使用。
與 C 和 Java 等流行的編程語言不同,R 沒有要聲明為數據的變量。 R 具有成為所需變量的數據類型的 R 對象(數據結構)。 R中有各種類型的數據結構。但首先,讓我們了解什麼是數據結構!
目錄
什麼是數據結構?
在 R 中,數據結構是一個保存多個值的工具。 請注意,在 R 編程中,很少使用具有單個值的數據。 使用 R 將不同類型的多個數字、單詞或值組合在一起更為可行。 這就是數據結構發揮作用的地方。 它們將這些多個值組合在一起,以便更輕鬆地一次處理大量數據。
數據結構由定義存儲在 zvalue 中的數據類型的數據類型組成。 例如,數字13是數字數據類型,而“十三”具有字符數據類型,也稱為字符串。
現在您已經掌握了這一點,讓我們看看不同的數據結構類型。
數據結構的類型
為了使數據分析和操作變得簡單高效,R編程中有五種主要的數據結構類型。

讓我們詳細看看它們中的每一個。
- 向量
R Vectors 的作用是對同一數據類型的多個值進行分組。 它是 R 中最基本的數據結構類型,有兩部分:原子向量和列表。 以下是它們的共同屬性:
- 功能類型(它是什麼)
- 函數長度(元素數量)
- 函數的屬性(附加的任意元數據)
現在,雖然原子向量用於合併相同的數據類型,但列表可以對不同的數據類型進行分組。 有四種類型的原子向量:
- 數值數據類型
- 整數數據類型
- 字符數據類型
- 邏輯數據類型
您可以使用函數 c() 創建向量。
例如:
如果您運行上述代碼,將創建一個名為“thisVector”的向量,其中包含從 1 到 30 的所有數字。
要將字符值存儲在 Vector 中,您必須使用雙引號,如下所示:
雖然您可以在向量中存儲不同類型的數據,但建議您不要將所有值都轉換為字符類型。
- 列表
如上所述,列表可以包含任何類型的數據元素——字符串、數字、向量,甚至是另一個列表。 例如,您可以創建一個包含 80 個數字、30 個單詞和 42 個向量的列表。 要使用的函數是 list()。
例子:
輸出:
由於列表也可以有其他列表,它們有時被稱為遞歸向量。 這就是為什麼它們與原子向量非常不同的原因。
- 因素
簡單地說,因子是一種向量,其中只能存儲預定義的值。 它主要用於存儲分類數據。 它們對列值進行分類,例如“男性”、“女性”、“真”、“假”等。

因子是異構的,因為字符串和整數都可以存儲在其中。 要創建因子,請使用 factor() 函數。 當特定變量有很多可能的值並且您都知道它們時,它們非常有用。
在 R 編程中,字符向量會自動轉換為向量。 您可以使用stringsAsFactors = FALSE來抑制這種情況,然後手動將每個字符向量轉換為因子。
- 數據框
R中的這種數據結構用於以表格形式表示數據,以使數據分析更容易。 它包含等長的向量,從而形成一個二維結構。 有包含變量值的列和包含每列的一組值的行。
自然地,數據幀可以存儲不同數據類型的值。 但是,每列必須具有相同數量的元素。 例如,如果第 1 列有 5 個元素,則第 2 列也應該有 5 個值。
數據框有一些特殊的特徵:
- 列名不應為空。
- 每行的名稱必須是唯一的。
- 您可以將數值、因子或字符類型數據存儲在數據框中。
- 所有列必須包含相同數量的數據元素。
在 R 中導入的所有數據集都會自動存儲為數據框。
- 矩陣
R 中的矩陣數據結構介於向量和數據幀之間。 矩陣是二維數據集,只能包含相同數據類型的元素。 您可以使用函數 matrix () 創建矩陣。
語法:矩陣(數據,nrow,ncol,byrow,dimnames)
這裡,
data = 作為向量的輸入元素
nrow = 行數
ncol = 列數
byrow = 按行排列
dimnames = 列/行的名稱
例子:
輸出:
儘管因子看起來和行為類似於字符向量,但它們實際上是整數。 要將因子轉換為字符串,請使用 gsub() 和 grepl() 等函數。 使用 nchar() 會出錯。
- 數組
數組是多維矩陣。 矩陣是數組的一種特殊情況,因為它有兩個維度。 雖然通常使用矩陣,但數組非常罕見。
創建數組的函數是array()。
測試一個對像是矩陣還是數組非常簡單。 只需使用 is.matrix() 或 is.array() 函數。
練習
既然您已經獲得了有關 R 中數據結構的足夠知識,那麼您可以嘗試回答以下一些問題。
- 數據框的屬性是什麼?
- 數據框可以包含 0 行或列嗎?
- R中有哪些不同類型的原子向量?
- 原子向量和列表有什麼區別?
- 在 R 中創建一個 4X3 矩陣。
通過電子郵件將您的答案發送給我們,或將它們寫在下面的評論中!

結論
為了充分利用 R 語言,對數據類型、數據結構及其工作方式的正確理解非常重要。 這些項目是 R 中所有活動的前提。例如,大多數程序員遇到的一個典型問題是對象轉換,只要對 R 對像有很好的了解就可以解決它。 必須注意的是,在 R 中,一切都是對象,操作都作為函數調用進行。
R 中的數據結構可以通過兩種不同的方式進行分類。 排序數據結構的主要方法是通過它們的維度,可以是 1、2 或 n 維,隨後的路線是通過它們可以是同質或異構的元素的性質。 同質結構中的每個元素都必須是相似的類型,而在異質結構中,允許具有各種類型的元素。
在學習了 R 中數據結構的基礎知識之後,您會發現使用 R 進行編程要容易得多。 數據結構是R的基礎。上面提到了六種最常用的數據結構。 重要的是要記住每種類型的不同特徵並實施它以分析數據並執行其操作。
如果您有興趣了解有關大數據的更多信息,請查看我們的 PG 大數據軟件開發專業文憑課程,該課程專為在職專業人士設計,提供 7 多個案例研究和項目,涵蓋 14 種編程語言和工具,實用的動手操作研討會,超過 400 小時的嚴格學習和頂級公司的就業幫助。
從世界頂級大學在線學習軟件開發課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。