R语言 通过列名和行名从矩阵中提取数值

R语言 通过列名和行名从矩阵中提取数值

在这篇文章中,我们将讨论如何在R编程语言中通过列名和行名从矩阵中提取数值。

通过列名从矩阵中提取数值

通过对所选行名的过滤,可以从原始矩阵中提取出一个行子集矩阵。由于矩阵的元素是以双索引格式访问的,因此可以进行特定的行选择。

语法 :

matrix[ vec , ]

其中,vec包含要获取的行名。

所有的列都是从数据框架中获取的。行和列的顺序不做修改。行和列的名称在提取后保持不变。返回的结果是原始矩阵的一个子集。行名应该是与矩阵相关的原始行名的适当子集。

例子

# declaring matrix 
mat <- matrix(letters[1:12], ncol = 3)
  
# naming columns
colnames(mat) <- c("C1","C2","C3")
  
# naming rows
rownames(mat) <- c("R1","R2","R3","R4")
print ("Original Matrix")
print (mat)
  
# extracting rows 
row_vec <- c("R2","R4")
row_mat <- mat[row_vec ,]
  
print ("Modified Matrix")
print (row_mat)
R

输出

[1] "Original Matrix"
  C1  C2  C3
R1 "a" "e" "i"
R2 "b" "f" "j"
R3 "c" "g" "k"
R4 "d" "h" "l"
[1] "Modified Matrix"
  C1  C2  C3
R2 "b" "f" "j"
R4 "d" "h" "l"
R

通过行名从矩阵中提取数值

通过对所选列名的过滤,可以从原始矩阵中提取出一个列子集矩阵。由于矩阵的元素是以双索引格式访问的,因此可以进行特定的行选择。

语法

matrix[, vec ]

其中,vec包含要获取的列名

所选列的所有行都会从数据框中检索出来。行和列的顺序保持不变。提取后的行和列名保持不变。返回的结果是原始矩阵的一个子集。要选择的列名应该是与矩阵有关的原始行名的适当子集。

例子

# declaring matrix 
mat <- matrix(letters[1:12], ncol = 3)
  
# naming columns
colnames(mat) <- c("C1","C2","C3")
  
# naming rows
rownames(mat) <- c("R1","R2","R3","R4")
print ("Original Matrix")
print (mat)
  
# extracting rows 
col_vec <- c("C1","C3")
col_mat <- mat[,col_vec]
print ("Modified Matrix")
print (col_mat)
R

输出

[1] "Original Matrix"
  C1  C2  C3
R1 "a" "e" "i"
R2 "b" "f" "j"
R3 "c" "g" "k"
R4 "d" "h" "l"
[1] "Modified Matrix"
  C1  C3
R1 "a" "i"
R2 "b" "j"
R3 "c" "k"
R4 "d" "l"
R

使用列名和行名提取数值

与上述方法类似,也可以通过为两个索引指定所选择的向量来提取行和列。

语法

matrix[ rowvec , colvec ]

其中,rowvec包含要提取的行名,colvec包含列名。

例子

# declaring matrix 
mat <- matrix(letters[1:12], ncol = 3)
  
# naming columns
colnames(mat) <- c("C1","C2","C3")
  
# naming rows
rownames(mat) <- c("R1","R2","R3","R4")
print ("Original Matrix")
print (mat)
  
# extracting rows 
row_vec <- c("R1","R3")
  
# extracting columns 
col_vec <- c("C1","C3")
col_mat <- mat[row_vec ,col_vec]
print ("Modified Matrix")
print (col_mat)
R

输出

[1] "Original Matrix"
  C1  C2  C3
R1 "a" "e" "i"
R2 "b" "f" "j"
R3 "c" "g" "k"
R4 "d" "h" "l"
[1] "Modified Matrix"
  C1  C3
R1 "a" "i"
R3 "c" "k"
R

任何单一元素或单元格的值也可以从矩阵中获取,只需指定行名和列名作为检索的索引。

例子

# declaring matrix 
mat <- matrix(letters[1:12], ncol = 3)
  
# naming columns
colnames(mat) <- c("C1","C2","C3")
  
# naming rows
rownames(mat) <- c("R1","R2","R3","R4")
print ("Original Matrix")
print (mat)
  
# extracting single element
col_mat <- mat["R3" , "C2"]
print ("Modified Matrix")
print (col_mat)
R

输出

[1] "Original Matrix"
  C1  C2  C3
R1 "a" "e" "i"
R2 "b" "f" "j"
R3 "c" "g" "k"
R4 "d" "h" "l"
[1] "Modified Matrix"
[1] "k"
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册