R語言:數據類型(向量、數組、矩陣、 列表和數據框)
R語言中的數據類型(Data Types)
R語言的對象(Objects)主要包括向量、矩陣、數組、數據框和列表。
R語言的對象有五種最基本的類型,即,字元型(character)、數值型(numeric,包括小數)、整型(integer)、複數型(complex)以及邏輯型(logical,TRUE/FALSE)
屬性是R語言對象的一部分。主要包括以下幾種:名字(names,dimnames),維度(dimensions,包括矩陣等),類別(class,包括數字、整數等),長度(length),以及其他。可通過 attributes()函數查看對象的屬性,不是所有對象都有屬性,如果沒有則返回NULL。
1. 向量
向量(vector)是R語言中最基本的數據類型,執行組合功能的函數 c()可用來創建向量。
各類向量如下例所示:
- a <- c (1, 2, 7, -4, 5) ## numeric
- b <- c ("Rice", "Wheat") ## character
- c <- c (TRUE, TRUE, FALSE, TRUE) ## logical
- d <- c (1+0i, 2+4i) ## complex
- e <- c (9:17) ## integer
注意:單個向量中的數據必須擁有相同的類型(數值型、字元型或邏輯型)。
創建空向量可以使用 vector()函數。例如創建一個指定長度為10、類型為數值型的空向量:
- > x <- vector("numeric", length = 10)
- > x
- [1] 0 0 0 0 0 0 0 0 0 0
另外,標量是只含一個元素的向量,它們用於保存常量。例如
- f <- 3
- g <- "US"
- h <- TRUE
2. 矩陣
矩陣(matrice)是具有維度屬性的向量,矩陣都是二維的,和向量類似,矩陣中也僅能包含一種數據類型。
主要有三種創建矩陣的方法:
(1)直接創建
例:數字1-20自動創建為一個5行4列的矩陣,自動填充第一列之後開始填充第二列
- y <- matrix(1:20, nrow = 5, ncol = 4)
- > y
- [,1] [,2] [,3] [,4]
- [1,] 1 6 11 16
- [2,] 2 7 12 17
- [3,] 3 8 13 18
- [4,] 4 9 14 19
- [5,] 5 10 15 20
- > dim(y)
- [1] 5 4 ##dim()看維度,5行4列
(2)矢量+維度向量
添加維度向量 dim()是將矢量轉變為矩陣的方法
- > m <- c(1:10)
- > m
- [1] 1 2 3 4 5 6 7 8 9 10
- > dim(m) <- c(2,5) ##2行5列
- > m
- [,1] [,2] [,3] [,4] [,5]
- [1,] 1 3 5 7 9
- [2,] 2 4 6 8 10
(3)綁定行或列來創建矩陣
綁定行或綁定列可以通過 cbind()和 rbind()來實現
- > x <- 1:3
- > y <- 10:12
- > cbind (x, y)
- x y
- [1,] 1 10
- [2,] 2 11
- [3,] 3 12
- > rbind (x, y)
- [,1] [,2] [,3]
- x 1 2 3
- y 10 11 12
3. 數組
數組(array)與矩陣類似,但是維度可以大於2。數組可通過array函數創建。
4. 列表
列表(list)是一種可包含多種不同類型對象的向量,是一些對象(或成分,component)的有序集合。
- > x <- list(1, "a", TRUE, 1 + 4i)
- > x
- [[1]]
- [1] 1
- [[2]]
- [1] "a"
- [[3]]
- [1] TRUE
- [[4]]
- [1] 1+4i
5.數據框
數據框(Data Frames)是一種特殊的列表,其中所用元素長度都相等,列表中的每個元素都可以看作一列,每個元素的長度可以看作行數。
創建顯式數據框的方法是 data.frame()
- > ID <- c(1,2,3,4)
- > age <- c(25,26,55,43)
- > diabetes <- c("Type1","Type2","Type3","Type1")
- > status <- c("Poor", "Improved", "Excellent","Poor")
- > data <- data.frame(ID, age, diabetes, status)
- > data
- ID age diabetes status
- 1 1 25 Type1 Poor
- 2 2 26 Type2 Improved
- 3 3 55 Type3 Excellent
- 4 4 43 Type1 Poor
※打開和寫入文件(fopen和fopen s)
※學習Git並在Idea中使用
TAG:程序員小新人學習 |