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"
數組
儘管矩陣限於兩個維度,數組可以是任何數目的尺寸大小。數組函數使用它創建維度的所需數量的屬性-dim。在下麵的例子中,我們創建了兩個元素數組,這是3×3矩陣。
# 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 yellow green Levels: green red yellow # applying the nlevels function we can know the number of distinct values [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