- 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