在计算其长度时从列中删除NAs

时间:2017-09-19 17:17:19

标签: r

所以我在数据帧中得到了237个不同脉冲的列,从那些我需要拍摄超过100且小于45的脉冲,看看有多少脉冲。我知道我可以用

来获得它的长度
length(survey$Pulse[survey$Pulse > 100 | survey$Pulse < 45])

然而,列中有NA值,我不知道如何从长度中删除它们。

如果您需要更多信息,请尝试提供,但唯一我不知道该怎么做的是从列中删除NA值。

我知道我可以使用na.rm=TRUE,但我不知道如何将其实现到该行。

2 个答案:

答案 0 :(得分:1)

一个选项是使用na.omit - 它会返回删除了NA个值的对象。

例如:

# With na.omit
length(na.omit(c(1:10, NA)))
10
# Without na.omit
length(c(1:10, NA))
11

在您的情况下使用:

length(na.omit(survey$Pulse[survey$Pulse > 100 | survey$Pulse < 45]))

答案 1 :(得分:1)

另一种方法是围绕逻辑条件包裹0x22 0x0A。如果存在which个值,则逻辑条件不足。我将举例说明虚假数据。

NA

x <- c(1:3, NA, 4, NA, 5:7, NA, 8:10) x[x < 4 | x > 7] #[1] 1 2 3 NA NA NA 8 9 10 x[which(x < 4 | x > 7)] #[1] 1 2 3 8 9 10 明显不同。