- R 教程
- R - 首頁
- R - 概述
- R - 環境設定
- R - 基本語法
- R - 資料型別
- R - 變數
- R - 運算子
- R - 決策
- R - 迴圈
- R - 函式
- R - 字串
- R - 向量
- R - 列表
- R - 矩陣
- R - 陣列
- R - 因子
- R - 資料框
- R - 包
- R - 資料重塑
R - 資料型別
通常,在任何程式語言中進行程式設計時,都需要使用各種變數來儲存各種資訊。變數只不過是保留的記憶體位置來儲存值。這意味著,當您建立變數時,您會在記憶體中保留一些空間。
您可能希望儲存各種資料型別的資訊,例如字元、寬字元、整數、浮點數、雙精度浮點數、布林值等。根據變數的資料型別,作業系統分配記憶體並決定可以在保留的記憶體中儲存什麼。
與其他程式語言(如 C 和 Java)不同,在 R 中,變數不會宣告為某種資料型別。變數被賦予 R 物件,而 R 物件的資料型別成為變數的資料型別。R 物件有很多型別。常用的有:
- 向量
- 列表
- 矩陣
- 陣列
- 因子
- 資料框
這些物件中最簡單的是向量物件,並且這些原子向量有六種資料型別,也稱為六類向量。其他 R 物件是建立在原子向量之上的。
| 資料型別 | 示例 | 驗證 |
|---|---|---|
| 邏輯型 | TRUE, FALSE |
v <- TRUE print(class(v)) 它產生以下結果: [1] "logical" |
| 數值型 | 12.3, 5, 999 |
v <- 23.5 print(class(v)) 它產生以下結果: [1] "numeric" |
| 整數型 | 2L, 34L, 0L |
v <- 2L print(class(v)) 它產生以下結果: [1] "integer" |
| 複數型 | 3 + 2i |
v <- 2+5i print(class(v)) 它產生以下結果: [1] "complex" |
| 字元型 | 'a' , '"good", "TRUE", '23.4' |
v <- "TRUE" print(class(v)) 它產生以下結果: [1] "character" |
| 原始型 | "Hello" 儲存為 48 65 6c 6c 6f |
v <- charToRaw("Hello")
print(class(v))
它產生以下結果: [1] "raw" |
在 R 程式設計中,最基本的資料型別是稱為向量的 R 物件,它們儲存不同類的元素,如上所示。請注意,在 R 中,類的數量不僅限於上述六種型別。例如,我們可以使用許多原子向量並建立一個數組,其類將變為陣列。
向量
當您想要建立包含多個元素的向量時,應使用c()函式,這意味著將元素組合成一個向量。
# Create a vector.
apple <- c('red','green',"yellow")
print(apple)
# Get the class of the vector.
print(class(apple))
當我們執行上述程式碼時,它會產生以下結果:
[1] "red" "green" "yellow" [1] "character"
列表
列表是一個 R 物件,它可以在其中包含許多不同型別的元素,例如向量、函式甚至另一個列表。
# Create a list. list1 <- list(c(2,5,3),21.3,sin) # Print the list. print(list1)
當我們執行上述程式碼時,它會產生以下結果:
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
矩陣
矩陣是一個二維矩形資料集。它可以使用向量輸入到矩陣函式中建立。
# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
當我們執行上述程式碼時,它會產生以下結果:
[,1] [,2] [,3] [1,] "a" "a" "b" [2,] "c" "b" "a"
陣列
雖然矩陣僅限於二維,但陣列可以是任意數量的維度。array 函式採用一個 dim 屬性,它建立所需的維度數。在下面的示例中,我們建立了一個包含兩個元素的陣列,每個元素都是一個 3x3 矩陣。
# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
當我們執行上述程式碼時,它會產生以下結果:
, , 1
[,1] [,2] [,3]
[1,] "green" "yellow" "green"
[2,] "yellow" "green" "yellow"
[3,] "green" "yellow" "green"
, , 2
[,1] [,2] [,3]
[1,] "yellow" "green" "yellow"
[2,] "green" "yellow" "green"
[3,] "yellow" "green" "yellow"
因子
因子是使用向量建立的 R 物件。它儲存向量以及向量中元素的不同值作為標籤。標籤始終是字元,而不管輸入向量中的數值、字元或布林值等是什麼。它們在統計建模中很有用。
因子使用factor()函式建立。nlevels函式給出級別的數量。
# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')
# Create a factor object.
factor_apple <- factor(apple_colors)
# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))
當我們執行上述程式碼時,它會產生以下結果:
[1] green green yellow red red red green Levels: green red yellow [1] 3
資料框
資料框是表格資料物件。與矩陣不同,在資料框中,每一列可以包含不同的資料模式。第一列可以是數值型,而第二列可以是字元型,第三列可以是邏輯型。它是一個長度相等的向量的列表。
資料框使用data.frame()函式建立。
# Create the data frame.
BMI <- data.frame(
gender = c("Male", "Male","Female"),
height = c(152, 171.5, 165),
weight = c(81,93, 78),
Age = c(42,38,26)
)
print(BMI)
當我們執行上述程式碼時,它會產生以下結果:
gender height weight Age 1 Male 152.0 81 42 2 Male 171.5 93 38 3 Female 165.0 78 26