向量是 R 编程中最基本的数据结构。向量可以包含一组相似类型的元素(类型可以是整数、双精度、字符、布尔值等)。如果您在单个向量中输入不同的数据类型,则所有元素都将转换为单一类型。
在本文中,我们将介绍如何创建向量以及如何访问和操作元素。接下来,执行向量上的算术运算。
在 R 中创建向量
每个变量都将被内部转换为向量。在此示例中,我们将创建一个包含单个元素的此类程序中的向量。最基本的方法是。
# with 1 integer Element
print(10L)
# with 1 String element
print("Hello")

使用范围创建 R 向量
在此程序中,有一个称为范围或冒号的特殊运算符,它有助于创建向量。例如,i <- 1:10 表示 1、2、3、4、5、6、7、8、9、10
# with Range i <- 1:10 print(i) # with Decimal Range j <- 1.5:5.5 print(j) # with Decimal Range k <- 1.5:5.5 print(k) # with Decimal Range n <- -10:-20 print(n) # Letter with Range l <- LETTERS[1:6] print(l)

使用序列(seq)运算符创建 R 向量
在这里,我们使用序列运算符或简单的 seq 运算符在此程序中创建一个向量。序列运算符将按顺序返回值。
# with Sequence a <- seq(from = 1, to = 10, by = 1) print(a) # Here, from =, to =, by = values are option so you can remove them too b <- seq(11, to = 15, by = 1) # Removing from print(b) c <- seq(15, 25, by = 3) # Removing both from, to print(c) d <- seq(2, 20, 2) # removing from, to, and by print(d)
它将创建一个向量,在索引位置 1 处以值 1 开始,在索引位置 10 处以值 10 结束,并且值增加 1。这意味着 1、2、3、4、5、6、7、8、9、10
a <- seq(from = 1, to = 10, by = 1)

使用连接 c 创建 R 向量
此示例使用 c(或称连接)创建向量。这是最流行的 R 编程 方法,我们通常偏好这种方式。
# with Concatenation
# Numeric
a <- c(1, 2, 3, 4)
print(a)
# Character
b <- c("India", "China", "Japan", "Russia", "Sri Lanka")
print(b)
#Boolean
d <- c(TRUE, FALSE, FALSE, TRUE, TRUE)
print(d)
# Mixed and its Type will be Character
e <- c("India", 2, "China", 1, TRUE)
print(e)
typeof(e) # this will return the Data type of e
# Placing or Nesting One inside the another
f <- c("UK", "USA", TRUE, FALSE, b) # b is another one
print(f)

访问 R 向量元素
在此程序中,我们可以使用索引位置来访问向量中的元素。使用此索引值,我们可以访问或修改/更改每个单独的元素。索引值从 1 开始,到 n 结束,其中 n 是长度。
例如,如果我们声明一个存储 10 个元素的向量,则索引从 1 开始,到 10 结束。要访问或修改第一个值,请使用 Vector_Name[1],要修改或访问第 10 个值,请使用 Vector_Name[10]。
# Elements Accessing
a <- c("India", "China", "Japan", "UK", "USA", "Russia", "Sri Lanka")
print(a)
print(a[1])
print(a[3])
print(a[1:3])
print(a[4:6])

首先,我们声明了一个名为 a 的 R 向量并分配了以下值
a <- c("India", "China", "Japan", "UK", "USA", "Russia", "Sri Lanka")
这里,a[1] 表示第一个位置的元素(即 India),a[3] 表示第三个位置的元素(即 Japan)。
print(a[1]) print(a[3])
在下一行中,我们使用了特殊运算符范围(或冒号)。它打印从 1 到 3 的元素(即 1、2、3)
print(a[1:3])
使用向量访问
此示例使用另一个向量访问元素。在第六行 print(a[b]) 中,我们使用这些数字作为索引位置来访问元素。这意味着打印索引位置为 2、4 和 6 的元素。
# Elements Accessing
a <- c("India", "China", "Japan", "UK", "USA", "Russia", "Sri Lanka")
print(a)
b <- c(2, 4, 6)
print(a[b])
print(a[c(5, 7)])
print(a[c(7, 4, 1)])

在 R 向量中使用负值
使用负值和布尔值访问元素。在向量中,负索引位置用于省略这些值。
# Elements Accessing
a <- c("India", "China", "Japan", "UK", "USA", "Russia", "Sri Lanka")
print(a)
b <- c(-3, -7)
print(a[b])
print(a[c(-4, -6, -7)])
print(a[c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE)])

首先,我们声明了 b 的负数 -3 和 -7。
b <- c(-3, -7)
在下一行中,我们使用这些数字作为索引位置来访问元素。这意味着打印除索引位置 3 和 7 的值之外的所有元素。
print(a[b])
在下一行中,我们声明了一个布尔值。我们使用这些布尔值作为索引位置来访问元素。这里,TRUE 表示打印值,FALSE 表示不打印。这意味着打印位置 1、3、4、6 的元素。
print(a[c(TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE)])
使用字符向量作为索引
此示例显示了如何使用字符索引值访问 R 向量元素。在这里,我们使用字母索引声明了 v,这可以帮助我们使用字母提取元素。
v <- c("a" = 10, "b" = 20, "c" = 30, "d" = -15, "e" = 40)
print(v)
print(v["a"])
print(v["d"])
print(v[c("a", "c")])

操作向量元素
在此编程中,我们可以通过以下方式操作向量元素
# Elements Manipulation a <- c(10, 20, 30, -15, 40, -25, 60, -5) print(a) a[7] <- 77 print(a) a[a < 0] <- 99 print(a) # Truncating the Elements a <- a[1:5] print(a) # Deleting a <- NULL print(a)

在第 7 个位置分配 77。
a[7] <- 77
它会将 99 分配给所有值小于 0 的元素。这里 a < 0 将检查元素是否小于零,如果条件为真,则该元素将被替换为 99。
a[a < 0] <- 99
在向量切片中,第一个整数值是切片开始的索引位置,第二个是切片结束的索引位置。
a <- a[1:5]
它会删除完整的。
a <- NULL
R 中向量的重要函数
以下函数是此程序中向量支持的一些最实用的函数。
- typeof(VectorName): 返回数据类型。
- Sort(Vector_name): 按升序对项目进行排序。
- length(Vector_name): 计算项目数量。
- head(Vector_name, limit): 返回前六个项目(如果您省略限制)。如果您将限制指定为 4,则它将返回前 4 个项目。
- tail(Vector_name, limit): 返回最后六个项目(如果您省略限制)。如果您将限制指定为 2,则它将返回最后两个项目。
# Elements Accessing a <- c(10, 20, 30, -15, 40, -25, 60, -5) print(a) # Some of the Important Functions typeof(a) length(a) head(a) head(a, 4) tail(a) tail(a, 3) x <- sort(a) print(x)

向量上的算术运算
使用 算术运算符 执行算术运算。
a <- c(10, 20, 30, 40) b <- c(12, 26, 38, 44) print(a + b) print(b - a) print(a * b) print (2 * a) d <- c(12, 44) print(a + d)

首先,我们声明了两个长度相同的数字向量 an 和 b。接下来,我们对这些向量执行了加法、减法和乘法。这里 a + b 表示(10 + 12、20 + 26、30 + 38、40 + 44)=(22、46、38、44)
print(a + b) print(b - a) print(a * b)
只要长度相同,上述操作就会生效。但是,如果长度不同,则会发生元素回收。它将遍历并乘以每个项目 2,直到完成所有元素。
print (2 * a)
接下来,我们声明了两个元素的 d 并执行了加法。这里 a + d 表示(10 + 12、20 + 44、30 + 12、40 + 44),因为 d 中只有两个项目,所以这两个项目将被重复。
d <- c(12, 44) print(a + d)