假设我有以下矩阵:
mat <- matrix(data = c(1, 2, 3, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2, 3, 4, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, 6, 7),
nrow = 9,
dimnames = list(c(paste0("x", 1:3),
paste0("y", 1:3),
paste0("z", 1:3)),
c("a", "b", "c")))
a b c
x1 1 0 0
x2 2 0 0
x3 3 0 0
y1 0 2 0
y2 0 3 0
y3 0 4 0
z1 0 0 5
z2 0 0 6
z3 0 0 7
我想要一个只保留非零元素的向量,而不是矩阵.
red <- apply(mat, 1, function(x) x[x != 0])
x1 x2 x3 y1 y2 y3 z1 z2 z3
1 2 3 2 3 4 5 6 7
有没有办法让缩减向量也保留列名?优选模式"colname+character+rowname".请参阅下面的所需输出.请注意,我们事先不知道将有多少列/行,也不知道它们是如何命名的.
a=x1 a=x2 a=x3 b=y1 b=y2 b=y3 c=z1 c=z2 c=z3
1 2 3 2 3 4 5 6 7
提前谢谢!