我有一个矩阵:
lil_matrix <- matrix(data = 1:4,
nrow = 2,
dimnames = list(c("Row1", "Row2"),
c("Col1", "Col2")))
当我对列进行子集化时,它返回一个命名的数字向量。
lil_matrix[,1]
如果我的矩阵是一行并且我是一列的子集,则该向量是未命名的。
lil_matrix[1, , drop = FALSE][,1]
当我对一列进行子集化时,我需要这个行矩阵来返回一个命名向量。使用上面的示例,它应该返回 Row1 作为名称,1 作为值。
解决方案需要尽可能高效。
谢谢!
一种可能的解决方案是为子集矩阵创建一个新对象:
r1 <- lil_matrix[1, , drop = FALSE]
然后对列进行子集化:
rc <- r1[,1]
然后为向量设置名称:
names(rc) <- row.names(r1)
我希望有一个更有效的解决方案,不需要创建两个新对象。