在 R 中按行名子集 DataFrame 和 Matrix
在本文中,我们将了解如何按行名评估子集数据框和矩阵。
方法 1:按行名子集数据框
R 中的 rownames(df) 方法用于设置数据框行的名称。指定了所需行名称的向量。 R 中的 %in%运算符用于检查所需行名向量中是否存在数据框行名。如果数据帧的行出现在向量中,则从数据帧中检索它们。行名称在数据框的最终输出中返回。然后使用输出返回数据框行的子集。
Syntax: val %in% vec
Arguments :
- val – A list or vector of values to check in vector
- vec – A vector to check the values 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)
输出: