Logo
Section 1 / 13

向量

在这里,我们将学习R语言中的向量是什么以及如何创建向量。

导入

向量

在这里,我们将学习R语言中的向量是什么以及如何创建向量。

向量是 R 语言中的基本数据结构。它在每个索引位置上存储相同类型的数据元素。支持的数据类型包括:

  • 逻辑型(Logical)
  • 整数型(Integer)
  • 数值型(Numeric)
  • 字符型(Character)
  • 复数型(Complex)

创建向量

关键字 vector() 用于创建具有固定类型和固定长度的向量。

1vector("numeric", 5) # 数值型向量,每个位置初始值为 0 2 3vector("complex", 5) # 复数型向量,每个位置初始值为 0+0i 4 5vector("logical", 5) # 逻辑型向量,每个位置初始值为 FALSE 6 7vector("character", 5) # 字符型向量,每个位置初始值为空字符串 ""

使用这种方法,每个索引位置都会被初始化为对应类型的“零值”——即数值型的 0、逻辑型的 FALSE、字符型的空字符串,或等价于“无”的值。

可以通过 typeof() 检查向量的类型,通过 length() 检查向量的元素个数。

我们已经讨论过这些函数,现在再次通过向量示例来演示它们的用法。

typeof()

1myNumericVector <- vector("numeric", 5) 2typeof(myNumericVector) 3 4myComplexVector <- vector("complex", 5) 5typeof(myComplexVector)

length()

1myNumericVector <- vector("numeric", 5) 2length(myNumericVector) 3 4myComplexVector <- vector("complex", 5) 5length(myComplexVector)

那么,如果我们不希望向量以“无”初始化,而是希望指定具体的初始值呢?

通过拼接创建向量

可以使用 c() 函数将多个对象连接起来,从而创建向量。通过该方法可以直接指定向量的内容。

1myRealNumericVector <- c(1, 2, 3, 4) # 数值型 2 3myDecimalNumericVector <- c(0.1, 0.2, 0.3, 0.4) # 数值型 4 5myLogicalVector <- c(TRUE, FALSE) # 逻辑型 6 7myCharacterVector <- c("a", "b", "c") # 字符型 8 9myIntegerVector <- 1:10 # 整数型 10 11myComplexVector <- c(1+1i, 2+2i) # 复数型

你也可以只用一个值创建一个向量。R 会将单个值保存为长度为 1 的向量。

1myVector <- 5 2is.vector(myVector) 3length(myVector)

在上述代码中,is.vector() 函数用于判断变量是否为向量,返回 TRUE 表示是向量,否则返回 FALSE。

注意:is.vector() 是 R 内置的函数。

将向量转换为字符串

假设我们要将一个字符串向量合并成一个单独的字符串,可以使用 paste() 函数。通过设置 collapse 参数,可以将向量中的字符串连接起来,并去除它们之间的引号。

collapse 参数用于指定连接各个元素时使用的分隔符。

collapse="."

1myVector <- c("learning", "is", "fun") 2paste(myVector, collapse = ".")

collapse=""

1myVector <- c("learning", "is", "fun") 2paste(myVector, collapse = "")

向向量中插入元素

可以使用相同的 c() 方法向向量中添加元素。

使用 c() 不仅可以连接两个向量,还可以将一个数值插入到向量中。

1myVector <- c(1, 2, 3, 4) 2cat("原始向量: ") 3print(myVector) 4 5myVector <- c(0, myVector) 6cat("在向量开头添加 0: ") 7print(myVector) 8 9myVector <- c(myVector, 5) 10cat("在向量末尾添加 5: ") 11print(myVector) 12 13tempVector <- c(6, 7, 8) 14myVector <- c(myVector, tempVector) 15cat("在原向量末尾添加另一个向量: ") 16print(myVector)

访问和修改向量

可以通过向量名称加上方括号 [] 来获取特定索引位置的元素。

1向量名[索引]

索引从 1 开始,表示向量的第一个元素位于索引 1。

1myVector <- c(0, 1, 2, 3) 2print(myVector[1])

同时,也可以修改向量中某个特定索引位置的值。

1myVector <- c(0, 1, 2, 3) 2myVector[1] <- 5 3print(myVector[1])

R 变量

列表