通常,在使用任何編程語言進(jìn)行編程時(shí),您需要使用各種變量來存儲(chǔ)各種信息。 變量只是保留值的存儲(chǔ)位置。 這意味著,當(dāng)你創(chuàng)建一個(gè)變量,你必須在內(nèi)存中保留一些空間來存儲(chǔ)它們。
您可能想存儲(chǔ)各種數(shù)據(jù)類型的信息,如字符,寬字符,整數(shù),浮點(diǎn),雙浮點(diǎn),布爾等。基于變量的數(shù)據(jù)類型,操作系統(tǒng)分配內(nèi)存并決定什么可以存儲(chǔ)在保留內(nèi)存中。
與其他編程語言(如 C 中的 C 和 java)相反,變量不會(huì)聲明為某種數(shù)據(jù)類型。 變量分配有 R 對(duì)象,R 對(duì)象的數(shù)據(jù)類型變?yōu)樽兞康臄?shù)據(jù)類型。盡管有很多類型的 R 對(duì)象,但經(jīng)常使用的是:
這些對(duì)象中最簡(jiǎn)單的是向量對(duì)象,并且這些原子向量有六種數(shù)據(jù)類型,也稱為六類向量。 其他 R 對(duì)象建立在原子向量之上。
數(shù)據(jù)類型 | 例 | 校驗(yàn) |
---|---|---|
Logical(邏輯型) | TRUE, FALSE | v <- TRUE print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "logical" |
Numeric(數(shù)字) | 12.3,5,999 | v <- 23.5 print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "numeric" |
Integer(整型) | 2L,34L,0L | v <- 2L print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "integer" |
Complex(復(fù)合型) | 3 + 2i | v <- 2+5i print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "complex" |
Character(字符) | 'a' , "good", "TRUE", '23.4' | v <- "TRUE" print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "character" |
Raw(原型) | "Hello" 被存儲(chǔ)為 48 65 6c 6c 6f | v <- charToRaw("Hello") print(class(v)) 它產(chǎn)生以下結(jié)果 - [1] "raw" |
在 R 編程中,非?;镜臄?shù)據(jù)類型是稱為向量的 R 對(duì)象,其保存如上所示的不同類的元素。 請(qǐng)注意,在 R 中,類的數(shù)量不僅限于上述六種類型。 例如,我們可以使用許多原子向量并創(chuàng)建一個(gè)數(shù)組,其類將成為數(shù)組。
當(dāng)你想用多個(gè)元素創(chuàng)建向量時(shí),你應(yīng)該使用 c() 函數(shù),這意味著將元素組合成一個(gè)向量。
# Create a vector. apple <- c('red','green',"yellow") print(apple) # Get the class of the vector. print(class(apple))
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
[1] "red" "green" "yellow" [1] "character"
列表是一個(gè)R對(duì)象,它可以在其中包含許多不同類型的元素,如向量,函數(shù)甚至其中的另一個(gè)列表。
# Create a list. list1 <- list(c(2,5,3),21.3,sin) # Print the list. print(list1)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
[[1]] [1] 2 5 3 [[2]] [1] 21.3 [[3]] function (x) .Primitive("sin")
矩陣是二維矩形數(shù)據(jù)集。 它可以使用矩陣函數(shù)的向量輸入創(chuàng)建。
# Create a matrix. M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE) print(M)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
[,1] [,2] [,3] [1,] "a" "a" "b" [2,] "c" "b" "a"
雖然矩陣被限制為二維,但陣列可以具有任何數(shù)量的維度。 數(shù)組函數(shù)使用一個(gè) dim 屬性創(chuàng)建所需的維數(shù)。 在下面的例子中,我們創(chuàng)建了一個(gè)包含兩個(gè)元素的數(shù)組,每個(gè)元素為 3x3 個(gè)矩陣。
# Create an array. a <- array(c('green','yellow'),dim = c(3,3,2)) print(a)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
, , 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"
# 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))
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
[1] green green yellow red red red green Levels: green red yellow # applying the nlevels function we can know the number of distinct values [1] 3
# 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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果
gender height weight Age 1 Male 152.0 81 42 2 Male 171.5 93 38 3 Female 165.0 78 26
更多建議: