NAs的问题

Sis*_*sse 4 r na

我有一个数据集

dat
   ejer_id person_alder koen  aar
1        1            9    1 2011
2        2            9    1 2011
3        3            7    1 2011
4        4           94    1 2011
5        5           94    2 2011
6        6           93   NA 2011
7        7           93    1 2011
8        8           91    2 2011
9        9           91    1 2011
10      10           91   NA 2011
Run Code Online (Sandbox Code Playgroud)

我算了NAs:

isna <- sum(is.na(dat$koen))
Run Code Online (Sandbox Code Playgroud)

这使

> isna
   [1] 2
Run Code Online (Sandbox Code Playgroud)

我不明白为什么以下不起作用:

 > length( dat$koen[dat$koen == 1] )
[1] 8
Run Code Online (Sandbox Code Playgroud)

这应该是6.

长度(dat $ koen [dat $ koen == 2])[1] 4

这应该是2.

我可以得到以下工作:

> length( which( dat$koen == 1 ) )
[1] 6
> length( which( dat$koen == 2 ) )
[1] 2
Run Code Online (Sandbox Code Playgroud)

我的数据集非常大,所以我需要知道,我在做什么,而且我不明白这两个表达式之间的区别.

任何帮助是极大的赞赏.

jay*_*ate 5

删除NA,以下代码可帮助您:

length(na.omit(dat$koen[dat$koen==1]))

或者可以通过以下方式完成:

length(dat$koen[which(!is.na(dat$koen[dat$koen==1]))])

如果这不起作用,请正确解释您的问题