一、向量數據庫
向量是R語言中最基本的數據類型,在R語言中沒有單獨的變量。數組
(1) 建立向量數據結構
R語言中能夠用 = 或者 <- 來賦值。函數
向量名 <- 向量3d
或 向量名 = 向量對象
向量的建立方式有c()函數,seq()函數等。blog
注:R中的向量默認爲列向量,若是要獲得行向量須要對其進行轉置。內存
(2) 引用io
待引用向量爲:test = c(6,7,8,9,10)。table
a、用下標引用
向量名[下標值]
或 向量名[下標值1:下標值2] (下標值1至下標值2的全部數值)
注:R語言下標值從1開始。
另外,能夠在下標值前加 – 表示排除這個下標。
向量名[-下標值]
b、用邏輯引用
向量名[邏輯關係]
其中邏輯關係表示的是一個布爾值構成的向量,用邏輯引用時只會選擇答案爲TRUE的值。
(3) 合併向量
c()能夠合併向量。
(4) 循環補齊
當兩個向量進行操做時,若其中一個向量比另外一個向量長度短,那麼該向量會複製本身直到與另外一個向量同樣長。(注:長向量長度是短向量長度的整數倍)
其中test1自動變成了(1,2,3,1,2,3)再與test2相加。(test1,test2變量值並未發生改變)
二、矩陣
矩陣從本質上講,是多維的向量。
(1) 建立矩陣
最簡單的直接建立矩陣的方法是用matrix()函數。
其中,data參數輸入的爲矩陣的元素,不能爲空;nrow參數輸入的是矩陣的行數,默認爲1;ncol參數輸入的是矩陣的列數,默認爲1;byrow參數控制矩陣元素的排列方式,TRUE表示按行排列,FALSE表示按列排列,默認爲FALSE;dimnames參數輸入矩陣的行名和列名,能夠不輸入,系統默認爲NULL。
還可用其餘格式的數據轉變爲矩陣,須要用到函數as.matrix()。
(2) 引用矩陣
與向量類似,可用下標來引用矩陣。
矩陣名[行下標,列下標]
(3) 線性代數
a、對應元素相乘
b、矩陣相乘
c、矩陣的轉置t()
d、矩陣的逆solve()
三、數組
數組(array)與矩陣相似,可是維度能夠大於2。數組可經過array函數建立,形式以下:
其中vector包含了數組中的數據,dimensions是一個數值型向量,給出了各個維度下標的最大值,而dimnames是可選的、各維度名稱標籤的列表。
四、數據框
數據框是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()函數
能夠把數據框中的變量「鏈接」到內存中,這樣便於數據框數據的調用。
五、列表
列表是一種特別的對象集合,它的元素也由序號(下標)區分,可是各元素的類型能夠是任意對象,不一樣元素沒必要是同一類型。元素自己容許是其它複雜數據類型,好比,列表的一個元素也容許是列表。
(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)