将非NA元素从矩阵子集到向量

时间:2013-12-05 08:45:35

标签: r matrix subset

我有一个像这样的矩阵:

   [1]  [2]  [3]  [4]  [5]  [6]
[1]NA   NA   NA    2    NA   NA
[2]NA   NA   NA    7     5   4
[3]NA   2     2    2     2   2
[4]NA   4     4    32    1   1
[5]9   NA    NA   NA     NA   NA
[6]NA  2      1    1     1    1

是否有任何方法可以对非NA的元素进行子集化(可能是列式),然后将所有数字存储在1个数字向量中,以便我可以将它们绘制为.numeric?

谢谢

2 个答案:

答案 0 :(得分:0)

试试这个:

#dummy data
mat <- matrix(rep(c(1,2,3,NA),7),ncol=4)
mat
#       [,1] [,2] [,3] [,4]
# [1,]    1   NA    3    2
# [2,]    2    1   NA    3
# [3,]    3    2    1   NA
# [4,]   NA    3    2    1
# [5,]    1   NA    3    2
# [6,]    2    1   NA    3
# [7,]    3    2    1   NA

mat[!is.na(mat)]
# [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

答案 1 :(得分:0)

您可以使用applyna.omit

unlist(apply(mat, 2, na.omit))
# [1]  9  2  4  2  2  4  1  2  7  2 32  1  5  2  1  1  4  2  1  1

您也可以使用

na.omit(as.vector(mat))