當前位置:
首頁 > 知識 > R語言:數據類型(向量、數組、矩陣、 列表和數據框)

R語言:數據類型(向量、數組、矩陣、 列表和數據框)

R語言中的數據類型(Data Types)

R語言的對象(Objects)主要包括向量、矩陣、數組、數據框和列表。

R語言:數據類型(向量、數組、矩陣、 列表和數據框)

R語言的對象有五種最基本的類型,即,字元型(character)、數值型(numeric,包括小數)、整型(integer)、複數型(complex)以及邏輯型(logical,TRUE/FALSE)

屬性是R語言對象的一部分。主要包括以下幾種:名字(names,dimnames),維度(dimensions,包括矩陣等),類別(class,包括數字、整數等),長度(length),以及其他。可通過 attributes()函數查看對象的屬性,不是所有對象都有屬性,如果沒有則返回NULL。



1. 向量

向量(vector)是R語言中最基本的數據類型,執行組合功能的函數 c()可用來創建向量。

各類向量如下例所示:

  1. a <- c (1, 2, 7, -4, 5) ## numeric
  2. b <- c ("Rice", "Wheat") ## character
  3. c <- c (TRUE, TRUE, FALSE, TRUE) ## logical
  4. d <- c (1+0i, 2+4i) ## complex
  5. e <- c (9:17) ## integer

注意:單個向量中的數據必須擁有相同的類型(數值型、字元型或邏輯型)。

創建空向量可以使用 vector()函數。例如創建一個指定長度為10、類型為數值型的空向量:

  1. > x <- vector("numeric", length = 10)
  2. > x
  3. [1] 0 0 0 0 0 0 0 0 0 0

另外,標量是只含一個元素的向量,它們用於保存常量。例如

  1. f <- 3
  2. g <- "US"
  3. h <- TRUE

2. 矩陣

矩陣(matrice)是具有維度屬性的向量,矩陣都是二維的,和向量類似,矩陣中也僅能包含一種數據類型。

主要有三種創建矩陣的方法:

(1)直接創建

例:數字1-20自動創建為一個5行4列的矩陣,自動填充第一列之後開始填充第二列

  1. y <- matrix(1:20, nrow = 5, ncol = 4)
  2. > y
  3. [,1] [,2] [,3] [,4]
  4. [1,] 1 6 11 16
  5. [2,] 2 7 12 17
  6. [3,] 3 8 13 18
  7. [4,] 4 9 14 19
  8. [5,] 5 10 15 20
  9. > dim(y)
  10. [1] 5 4 ##dim()看維度,5行4列

(2)矢量+維度向量

添加維度向量 dim()是將矢量轉變為矩陣的方法

  1. > m <- c(1:10)
  2. > m
  3. [1] 1 2 3 4 5 6 7 8 9 10
  4. > dim(m) <- c(2,5) ##2行5列
  5. > m
  6. [,1] [,2] [,3] [,4] [,5]
  7. [1,] 1 3 5 7 9
  8. [2,] 2 4 6 8 10

(3)綁定行或列來創建矩陣

綁定行或綁定列可以通過 cbind()和 rbind()來實現

  1. > x <- 1:3
  2. > y <- 10:12
  3. > cbind (x, y)
  4. x y
  5. [1,] 1 10
  6. [2,] 2 11
  7. [3,] 3 12
  8. > rbind (x, y)
  9. [,1] [,2] [,3]
  10. x 1 2 3
  11. y 10 11 12

3. 數組

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

4. 列表

列表(list)是一種可包含多種不同類型對象的向量,是一些對象(或成分,component)的有序集合。

  1. > x <- list(1, "a", TRUE, 1 + 4i)
  2. > x
  3. [[1]]
  4. [1] 1
  5. [[2]]
  6. [1] "a"
  7. [[3]]
  8. [1] TRUE
  9. [[4]]
  10. [1] 1+4i

5.數據框

數據框(Data Frames)是一種特殊的列表,其中所用元素長度都相等,列表中的每個元素都可以看作一列,每個元素的長度可以看作行數。

創建顯式數據框的方法是 data.frame()

  1. > ID <- c(1,2,3,4)
  2. > age <- c(25,26,55,43)
  3. > diabetes <- c("Type1","Type2","Type3","Type1")
  4. > status <- c("Poor", "Improved", "Excellent","Poor")
  5. > data <- data.frame(ID, age, diabetes, status)
  6. > data
  7. ID age diabetes status
  8. 1 1 25 Type1 Poor
  9. 2 2 26 Type2 Improved
  10. 3 3 55 Type3 Excellent
  11. 4 4 43 Type1 Poor

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

打開和寫入文件(fopen和fopen s)
學習Git並在Idea中使用

TAG:程序員小新人學習 |