位置:首頁 > 大數據教學 > 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"  

數組

儘管矩陣限於兩個維度,數組可以是任何數目的尺寸大小。數組函數使用它創建維度的所需數量的屬性-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