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

📅  最后修改于: 2023-12-03 14:51:07.581000             🧑  作者: Mango

在 R 中按行名子集 DataFrame 和 Matrix

在 R 中,我们常常需要通过行名对 DataFrame 和 Matrix 进行子集操作。以下是一些常用的子集操作方法。

通过行名选择 DataFrame 的子集

假设我们有一个 DataFrame df,它有以下几个行名:'a', 'b', 'c', 'd'。

df <- data.frame(a=1:4, b=5:8, c=9:12, d=13:16)
row.names(df) <- c('a', 'b', 'c', 'd')
选择单个行名所在的行
df['a',]

这样会返回一个长度为列数的向量,表示该行的数值值。

选择多个行名所在的行
df[c('a', 'c'),]

这样会返回多行构成的 DataFrame。

选择符合条件的行
df[df$a == 2 | df$c == 11,]

通过指定符合某些条件的行进行子集选择,这里是选择满足 a 等于 2 或者 c 等于 11 的行。

通过行名选择 Matrix 的子集

对于 Matrix,我们可以采用以下方式进行子集的选择。

假设我们有一个 Matrix m,它有以下几个行名:'a', 'b', 'c', 'd'。

m <- matrix(1:16, ncol=4)
row.names(m) <- c('a', 'b', 'c', 'd')
选择单个行名所在的行
m['a',]

这样会返回一个长度为列数的向量,表示该行的数值值。

选择多个行名所在的行
m[c('a', 'c'),]

这样会返回多行构成的 Matrix。

选择符合条件的行
m[m[,1] == 2 | m[,3] == 11,]

通过指定符合某些条件的行进行子集选择,这里是选择满足第一列等于 2 或者第三列等于 11 的行。