导入
向量
在这里,我们将学习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])