R语言 数据类型
通常,在任何编程语言中进行编程时,您需要使用各种变量来存储各种信息。变量只是保留内存位置以存储值。这意味着,当您创建一个变量时,您会在内存中保留一些空间。
您可能想要存储各种数据类型的信息,如字符型、宽字符型、整型、浮点型、双精度浮点型、布尔型等。根据变量的数据类型,操作系统会分配内存并决定可以在保留的内存中存储什么。
与其他编程语言(如C和Java)相比,在R中,变量不是声明为某种数据类型的。变量与R对象关联,并且R对象的数据类型成为变量的数据类型。有许多种类型的R对象。常用的类型包括−
- 向量 Vectors
- 列表 Lists
- 矩阵 Matrices
- 数组 Arrays
- 因子 Factors
- 数据框 Data Frames
这些对象中最简单的是 向量对象 ,它们有六种数据类型,也称为六种向量类别。其他R对象都建立在原子向量上。
Logical类型,比如:TRUE, FALSE
v <- TRUE
print(class(v))
输出 −
[1] "logical"
Numeric 类型,比如:12.3, 5, 999
v <- 23.5
print(class(v))
输出 −
[1] "numeric"
Integer类型,比如:2L, 34L, 0L
v <- 2L
print(class(v))
输出 −
[1] "integer"
Complex类型,比如:3 + 2i
v <- 2+5i
print(class(v))
输出 −
[1] "complex"
Character类型,比如:’a’ , ‘”good”, “TRUE”, ‘23.4’
v <- "TRUE"
print(class(v))
输出 −
[1] "character"
Raw类型,比如:”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 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