R語言入門 :基本數據結構


1、向量

向量是R語言中最基本的數據類型,在R語言中沒有單獨的變量。

(1)  創建向量

R語言中可以用 = 或者 <- 來賦值。

向量名 <- 向量

或  向量名 = 向量

向量的創建方式有c()函數,seq()函數等。

注:R中的向量默認為列向量,如果要得到行向量需要對其進行轉置。

 

 

 

(2)  引用

待引用向量為:test = c(6,7,8,9,10)。

a、用下標引用

向量名[下標值]

或  向量名[下標值1:下標值2] (下標值1至下標值2的所有數值)

注:R語言下標值從1開始。

另外,可以在下標值前加 – 表示排除這個下標。

向量名[-下標值]

b、用邏輯引用

向量名[邏輯關系]

其中邏輯關系表示的是一個布爾值構成的向量,用邏輯引用時只會選擇答案為TRUE的值。

(3)  合並向量

c()可以合並向量。

(4)  循環補齊

        當兩個向量進行操作時,若其中一個向量比另一個向量長度短,那么該向量會復制自己直到與另一個向量一樣長。(注:長向量長度是短向量長度的整數倍)

其中test1自動變成了(1,2,3,1,2,3)再與test2相加。(test1,test2變量值並未發生改變)

2、矩陣

矩陣從本質上講,是多維的向量。

(1)  創建矩陣

最簡單的直接創建矩陣的方法是用matrix()函數。

        其中,data參數輸入的為矩陣的元素,不能為空;nrow參數輸入的是矩陣的行數,默認為1;ncol參數輸入的是矩陣的列數,默認為1;byrow參數控制矩陣元素的排列方式,TRUE表示按行排列,FALSE表示按列排列,默認為FALSE;dimnames參數輸入矩陣的行名和列名,可以不輸入,系統默認為NULL。

還可用其他格式的數據轉變為矩陣,需要用到函數as.matrix()。

(2)  引用矩陣

與向量相似,可用下標來引用矩陣。

矩陣名[行下標,列下標]

(3)  線性代數

a、對應元素相乘

b、矩陣相乘

c、矩陣的轉置t()

d、矩陣的逆solve()

3、數組

數組(array)與矩陣類似,但是維度可以大於2。數組可通過array函數創建,形式如下:

        其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標簽的列表。

4、數據框

        數據框是R語言里中的一種數據結構,類似於矩陣,不過與矩陣不同的是其內部可以有多種數據類型,每一列是一個變量,每行是一個觀測記錄。

(1)  創建數據框

使用data.frame()函數就可以初始化一個數據框。

        矩陣可以轉化為數據框,如果原來有列名,那么列名將被改作為數據框的變量名,如果沒有列名,那系統會自動為矩陣的各列起一個變量名,如:V1,V2,V3...

列表數據可以轉成數據框。

        另外也可以使用read.table() read.csv()讀取一個文本文件,返回的也是一個Data Frame對象。讀取數據庫也是返回Data Frame對象。

(2)  引用數據框

待引用數據框為

a、用下標引用

b、用列表名引用

(3)  常用操作

a、添加變量(列)

b、修改變量(列)

c、刪除觀測值或變量(行或列)

數據框名[-下標值,]

數據框名[,-下標值]

 

 

(4)  常用函數

a、names()函數

可獲取列名。

b、rownames()、colnames()函數

可修改行名及列名。

c、attach()函數

可以把數據框中的變量“連接”到內存中,這樣便於數據框數據的調用。

5、列表

        列表是一種特別的對象集合,它的元素也由序號(下標)區分,但是各元素的類型可以是任意對象,不同元素不必是同一類型。元素本身允許是其它復雜數據類型,比如,列表的一個元素也允許是列表。

(1)  創建列表

使用list()函數就可以初始化一個列表。

(2)  引用列表

待引用列表即為上圖所創建的列表。

列表名[[下標]

注:列表不同於向量,我們每次只能引用一個元素,如mylist[[1:2]]的用法是不允許的。“列表名[下標]”或“列表名[下標范圍]”的用法也是合法的,但其意義與用兩重括號的記法完全不同,兩重記號取出列表的一個元素,結果與該元素類型相同,如果使用一重括號,則結果是列表的一個子列表(結果類型仍為列表)。

        在定義列表時如果指定了元素的名字(如mylist中的name,age,score),則引用列表元素還可以用它的名字作為下標,格式為“列表名[["元素名"]]”。

列表名$元素名

(3)  常用操作

a、添加元素

        如果被賦值的元素原來不存在,則列表延伸以包含該新元素。例如,mylist現在共有三個元素,我們定義一個新的命名元素,則列表長度變為4,再定義第六號元素則列表長度變為6:

        第五號元素因為沒有定義所有其值是“NULL”,這是空對象的記號。如果rec是一個向量 ,則其空元素為“NA”。

b、修改元素

c、刪除元素

d、合並列表

可以用list()函數進行列表合並。

list(列表1,列表2,···,列表n)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM