R语言 对向量的操作

R语言 对向量的操作

向量是R语言中最基本的数据类型,即使创建的单个对象也是以向量的形式存储的。向量只不过是其他语言中定义的数组。向量包含一连串同质类型的数据。如果给定的是混合值,那么它会根据优先级自动转换数据。在R语言中可以对向量进行各种操作。

创建一个向量

如下面的例子所示,可以用很多方法创建向量。最常见的是使用’c’函数将不同的元素组合在一起。

# Use of 'c' function
# to combine the values as a vector.
# by default the type will be double
X <- c(1, 4, 5, 2, 6, 7)
print('using c function')
print(X)
  
# using the seq() function to generate
# a sequence of continuous values
# with different step-size and length.
# length.out defines the length of vector.
Y <- seq(1, 10, length.out = 5)
print('using seq() function')
print(Y)
  
# using ':' operator to create
# a vector of continuous values.
Z <- 5:10
print('using colon')
print(Y)

输出:

using c function 1 4 5 2 6 7
using seq function 1.00  3.25  5.50  7.75 10.00
using colon 5  6  7  8  9 10

访问矢量元素

矢量元素可以通过许多方式被访问。最基本的是使用'[]’,下标操作符。以下是访问向量元素的方法:

注意: R中的向量是基于1的索引,不像普通的C,python等格式,索引从0开始。

# Accessing elements using the position number.
X <- c(2, 5, 8, 1, 2)
print('using Subscript operator')
print(X[2])
  
# Accessing specific values by passing
# a vector inside another vector.
Y <- c(4, 5, 2, 1, 7)
print('using c function')
print(Y[c(4, 1)])
  
# Logical indexing
Z <- c(5, 2, 1, 4, 4, 3)
print('Logical indexing')
print(Z[Z>3])

输出:

using Subscript operator 5
using c function 1 4
Logical indexing 5 4 4

修改一个矢量

可以使用不同的索引变化来修改向量,这在下面的代码中提到:

# Creating a vector
X <- c(2, 5, 1, 7, 8, 2)
  
# modify a specific element
X[3] <- 11
print('Using subscript operator')
print(X)
  
# Modify using different logics.
X[X>9] <- 0
print('Logical indexing')
print(X)
  
# Modify by specifying the position or elements.
X <- X[c(5, 2, 1)]
print('using c function')
print(X)

输出:

Using subscript operator 2  5 11  7  8  2
Logical indexing 2 5 0 7 8 2
using c function 8 5 2

删除一个向量

可以通过将向量重新赋值为NULL来删除它们。要删除一个向量,我们使用NULL操作符。

# Creating a vector
X <- c(5, 2, 1, 6)
  
# Deleting a vector
X <- NULL
print('Deleted vector')
print(X)
Deleted vector NULL

算术运算

我们可以在两个向量之间进行算术运算。这些运算是按元素进行的,因此两个向量的长度应该是一样的。

# Creating Vectors
X <- c(5, 2, 5, 1, 51, 2)
Y <- c(7, 9, 1, 5, 2, 1)
  
# Addition
Z <- X + Y
print('Addition')
print(Z)
  
# Subtraction
S <- X - Y
print('Subtraction')
print(S)
  
# Multiplication
M <- X * Y
print('Multiplication')
print(M)
  
# Division
D <- X / Y
print('Division')
print(D)

输出:

Addition 12 11  6  6 53  3
Subtraction -2 -7  4 -4 49  1
Multiplication 35  18   5   5 102   2
Division 0.7142857  0.2222222  5.0000000  0.2000000 25.5000000  2.0000000

矢量的排序

对于排序,我们使用 sort( )函数,它默认以升序对向量进行排序。

# Creating a Vector
X <- c(5, 2, 5, 1, 51, 2)
  
# Sort in ascending order
A <- sort(X)
print('sorting done in ascending order')
print(A)
  
# sort in descending order.
B <- sort(X, decreasing = TRUE)
print('sorting done in descending order')
print(B)

输出:

sorting done in ascending order 1  2  2  5  5 51
sorting done in descending order 51  5  5  2  2  1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程