na.omits删除所有列中具有NA的所有行,而不仅限于指定的列

nbn16

考虑以下对象(数据):

   collection.number weight bill.length bill.height bill.width
1         XXXXX29985   11.5       16.10        4.07       6.74
2         XXXXX29986   11.6       17.43        4.17       6.39
3         XXXX391828     NA       14.85        4.02       7.19
4         XXXX328017     NA       16.92        3.38         NA
5            XX28024     NA       14.79          NA       6.00
6            XX28095     NA       15.80        4.17       6.54

我正在尝试删除以下任一列中具有NA的所有行:bill.length,bill.height和bill.width。

当我做:

data.filtered<-na.omit(data[3:5])

要么

data.filtered<-na.omit(data, cols = c("bill.length","bill.height","bill.width"))

它将删除“权重”列中不仅具有指定列而且具有NA的所有行。我究竟做错了什么?有没有更简单的方法来删除这些行?

阿克伦

在这里,一个更简单的选择是?complete.cases通过描述接受参数

向量,矩阵和数据帧的序列。

并返回一个逻辑矢量,该逻辑矢量可用作行索引以对数据集进行子集

data[complete.cases(data[3:5]),]
#  collection.number weight bill.length bill.height bill.width
#1        XXXXX29985   11.5       16.10        4.07       6.74
#2        XXXXX29986   11.6       17.43        4.17       6.39
#3        XXXX391828     NA       14.85        4.02       7.19
#6           XX28095     NA       15.80        4.17       6.54

na.omit通过删除行中任一列上没有任何NA的行来返回数据集本身。因此,当我们na.omit在子集数据上应用时,它仅返回已按列子集的数据行的子集

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章