R用NA获得每一列

时间:2017-02-02 13:56:17

标签: r

我需要R中的一个函数,它正在执行以下操作。 我有一个带有一些数据的矩阵

mydata <- data.frame (matrix(c(1,2,3,NA,2,3,NA,NA,2), 3,3))

mydata
  X1 X2 X3
1  1 NA NA
2  2  2 NA
3  3  3  2

如果列中有任何NA,我想检查此矩阵的每一列,如果列中有NA,则创建一个存储0的向量;如果列中没有NA,则创建一个向量。

因此,检查列X1:如果NA在此列中,则向向量写入0,如果不向向量写入1。然后检查下一栏,依此类推。

检查mydata后,矢量应该如下所示

(1 0 0)

colnames(mydata)[colSums(is.na(mydata)) > 0]

我得到了NA的列名。但是如何使用此函数创建向量?

1 个答案:

答案 0 :(得分:0)

我们可以将逻辑colSums上的matrixas.integer

的逻辑向量强制转换为二进制
as.integer(!colSums(is.na(mydata)))
#[1] 1 0 0