Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R NAs的问题_R_Na - Fatal编程技术网

R NAs的问题

R NAs的问题,r,na,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 2

我有一个像这样的数据集

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
我计算NAs:

isna <- sum(is.na(dat$koen))
我不明白为什么以下方法不起作用:

 > length( dat$koen[dat$koen == 1] )
[1] 8
这应该是6

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

这应该是2

我可以做到以下几点:

> length( which( dat$koen == 1 ) )
[1] 6
> length( which( dat$koen == 2 ) )
[1] 2
我的数据集很大,所以我需要知道我在做什么,我不明白这两个表达式之间的区别


非常感谢您的帮助。

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

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

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

长度(dat$koen[其中(!is.na(dat$koen[dat$koen==1])))


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

您应该知道的是,您不能将任何内容(
NA
)与某个内容(
1
)进行比较。也就是说,当算法执行此操作时,
NA==1
,它不会返回
FALSE
,但会返回
NA
。这就是您得到以下信息的原因:

 > length( dat$koen[dat$koen == 1] )
[1] 8
请尝试以下方法:

 > length(dat$koen[dat$koen==1 & !is.na(dat$koen)])
[1] 6

试着运行代码的较小部分,例如,只运行
dat$koen==1
,然后
dat$koen[dat$koen==1]
,那么你应该能够看到为什么
length
说明了它的作用……任何与
NA
的逻辑比较都会给出
NA
,例如:
NA==1
NA
 > length(dat$koen[dat$koen==1 & !is.na(dat$koen)])
[1] 6