R语言 按行名子集数据框架和矩阵
在这篇文章中,我们将看到如何通过行名来评估子集数据框架和矩阵。
方法1:通过行名来子集数据框架
R中的rownames(df)方法用于设置数据框的行名。指定一个所需行名的向量。R中的%in%操作符用于检查所需行名的向量中是否存在数据框的行名。如果数据框的行出现在向量中,那么就从数据框中检索出来。行名会在数据框的最终输出中返回。然后,该输出被用来返回数据框行的一个子集。
语法: val %in% vec
参数:
- val – 要在向量中检查的值的列表或向量
- vec – 要检查的值的一个向量
代码
# 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)
输出
方法2:按行名对矩阵进行子集
R中的rownames(mat)方法被用来设置矩阵的行名。类似的方法用于检查矩阵的行名是否存在于指定行名的向量或列表中。下面的代码片断可以用来根据指定的行名对矩阵进行子集。
代码
# 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)
输出