1. NaN
R中的无定义数用NaN表示,即“Not a Number(非数)”。
不过在R中,R实际上是把NaN视作一个数的,当其参与运算时,返回结果总是NaN。我们可以使用is.nan()函数来检测计算结果有无定义,但是需要注意的是,对于NaN而言,is.finite()和is.infinite()都会返回FALSE。
2. NA
NA表示缺失值,即“Missing value”,是“not available”的缩写
3. Inf
R中的无穷大用Inf表示(即Infinity,无穷大),负无穷表示为-Inf。
要检查一个数是否为无穷,可以使用is.finite()或者is.infinite()函数
3. NULL
R语言中,NA代表位置上的值为空,NULL代表连位置都没有,变量为空,其长度为0,表明“空无一物”
将两个数据进行除法运算
而log2_foldchange就是我们需要的数据,发现里面有许多 NaN、 -Inf 、Inf ,想办法进行数据清洗。
都到这一步了,再绘制两个图形玩玩:
从网上找了一下,整理如下:NA:缺失数据
NaN:无意义的数,比如sqrt(-2), 0/0。
Inf:正无穷大
-Inf:负无穷大
NULL:不存在
下面是用程序来看:
rm是remove的意思,例如你指定na.rm=T,就会移除na数据
Summary:t.test计算存在NA值的data时,默认的mean格式为mean(x, na.rm=TRUE),
也就是每组的NA不计入每组的个数中。
验证:
1. data 如下:
2. 在NA存在的条件下直接计算p.value
t.test(as.numeric(test)~group)$p.value,可以直接提取p-value;
t.test(as.numeric(test)~group)$estimate[1], 可以直接提取相应的mean值;
3. 去掉NA值计算p.value
可以看出两种计算相同,以后可以放心的计算含有NA值的数据啦!