📜  在 R 中按行名子集 DataFrame 和 Matrix

📅  最后修改于: 2022-05-13 01:54:51.816000             🧑  作者: Mango

在 R 中按行名子集 DataFrame 和 Matrix

在本文中,我们将了解如何按行名评估子集数据框和矩阵。

方法 1:按行名子集数据框

R 中的 rownames(df) 方法用于设置数据框行的名称。指定了所需行名称的向量。 R 中的 %in%运算符用于检查所需行名向量中是否存在数据框行名。如果数据帧的行出现在向量中,则从数据帧中检索它们。行名称在数据框的最终输出中返回。然后使用输出返回数据框行的子集。

代码:

R
# creating data frame
data_frame <- data.frame(col1 = rep(letters[1:4], each = 2),
                         col2 = 1:8
                         )
print("Original DataFrame")
print(data_frame)
  
# assigning row names to data frame
rownames(data_frame) <- c("row1","row2","row3","row4",
                          "row5", "row6","row7","row8")
  
# getting rows 
rows <- c("row1","row3","row5","row8")
  
# extracting data frame rows
data_mod <- data_frame[rownames(data_frame) %in% rows, ] 
print("Modified DataFrame")
print(data_mod)


R
# creating matrix
matr <- matrix(1:12, nrow = 4)
print("Original Matrix")
print(matr)
  
# assigning row names to data frame
rownames(matr) <- c("row1","row2","row3","row4")
                            
# getting rows 
rows <- c("row1","row3")
  
# extracting data frame rows
data_mod <- matr [rownames(matr) %in% rows, ] 
print("Modified Matrix")
print(data_mod)


输出:

方法 2:按行名子集矩阵

R 中的 rownames(mat) 方法用于设置矩阵行的名称。类似的方法用于检查向量或指定行名列表中矩阵的行名是否存在。以下代码片段可用于根据指定的行名称对矩阵进行子集化。

代码:

R

# creating matrix
matr <- matrix(1:12, nrow = 4)
print("Original Matrix")
print(matr)
  
# assigning row names to data frame
rownames(matr) <- c("row1","row2","row3","row4")
                            
# getting rows 
rows <- c("row1","row3")
  
# extracting data frame rows
data_mod <- matr [rownames(matr) %in% rows, ] 
print("Modified Matrix")
print(data_mod)

输出: