前言:

学习R过程中,数据中往往会出现一些诡异的符号,而不是数值,那么他们到底是什么意思呢?下面带领大家一探究竟。

(一) 特殊值的概念

1. NaN

R中的无定义数用NaN表示,即“Not a Number(非数)”。

不过在R中,R实际上是把NaN视作一个数的,当其参与运算时,返回结果总是NaN。我们可以使用is.nan()函数来检测计算结果有无定义,但是需要注意的是,对于NaN而言,is.finite()和is.infinite()都会返回FALSE。

> 0/0

[1] NaN

2. NA

NA表示缺失值,即“Missing value”,是“not available”的缩写

> a

> a[1:5]

[1] 1 2 3 4 NA

3. Inf

R中的无穷大用Inf表示(即Infinity,无穷大),负无穷表示为-Inf。

要检查一个数是否为无穷,可以使用is.finite()或者is.infinite()函数

> 1/0

[1] Inf

> -1/0

[1] -Inf

3. NULL

R语言中,NA代表位置上的值为空,NULL代表连位置都没有,变量为空,其长度为0,表明“空无一物”

> a

> a

NULL

> length(a)

[1] 0

(二) 实战中处理无效数据

#设置sugar数据

> sugar

> sugar[1,]

> sugar[3,1]

> sugar

[,1] [,2] [,3] [,4] [,5]

[1,] 0 0 0 0 0

[2,] 2 7 12 17 22

[3,] 0 8 13 18 23

[4,] 4 9 14 19 24

[5,] 5 10 15 20 25

#设置yeast数据

> yeast

> yeast[3,]

> yeast[1,1]

> yeast

[,1] [,2] [,3] [,4] [,5]

[1,] 0 11 12 13 14

[2,] 15 16 17 18 19

[3,] 0 0 0 0 0

[4,] 25 26 27 28 29

[5,] 30 31 32 33 34

将两个数据进行除法运算

> foldchange

> foldchange

[,1] [,2] [,3] [,4] [,5]

[1,] NaN 0.0000000 0.0000000 0.0000000 0.0000000

[2,] 0.1333333 0.4375000 0.7058824 0.9444444 1.1578947

[3,] NaN Inf Inf Inf Inf

[4,] 0.1600000 0.3461538 0.5185185 0.6785714 0.8275862

[5,] 0.1666667 0.3225806 0.4687500 0.6060606 0.7352941

> log2_foldchange

> log2_foldchange

[,1] [,2] [,3] [,4] [,5]

[1,] NaN -Inf -Inf -Inf -Inf

[2,] -2.906891 -1.192645 -0.5025003 -0.08246216 0.2115041

[3,] NaN Inf Inf Inf Inf

[4,] -2.643856 -1.530515 -0.9475326 -0.55942741 -0.2730185

[5,] -2.584963 -1.632268 -1.0931094 -0.72246602 -0.4436067

而log2_foldchange就是我们需要的数据,发现里面有许多 NaN、 -Inf 、Inf ,想办法进行数据清洗。

> yeast == 0 # 逻辑判断数据中是否为0

[,1] [,2] [,3] [,4] [,5]

[1,] TRUE FALSE FALSE FALSE FALSE

[2,] FALSE FALSE FALSE FALSE FALSE

[3,] TRUE TRUE TRUE TRUE TRUE

[4,] FALSE FALSE FALSE FALSE FALSE

[5,] FALSE FALSE FALSE FALSE FALSE

> log2_foldchange[yeast == 0] # 选择里面判断为0的数据

[1] NaN NaN Inf Inf Inf Inf

# 将无效值替换为0

> log2_foldchange[sugar == 0 | yeast == 0]

> log2_foldchange

[,1] [,2] [,3] [,4] [,5]

[1,] 0.000000 0.000000 0.0000000 0.00000000 0.0000000

[2,] -2.906891 -1.192645 -0.5025003 -0.08246216 0.2115041

[3,] 0.000000 0.000000 0.0000000 0.00000000 0.0000000

[4,] -2.643856 -1.530515 -0.9475326 -0.55942741 -0.2730185

[5,] -2.584963 -1.632268 -1.0931094 -0.72246602 -0.4436067

都到这一步了,再绘制两个图形玩玩:

hist图

> hist(log2_foldchange, col = "red", border = "black")

2018-10-07Rplot01.png

密度图

> curve

> plot(curve, main = "understand the NaN Inf NA")

> polygon(curve, col = "Thistle", border = "red", lty =1 )

2018-10-07Rplot02.png

r语言赋值为na_R语言中特殊值NaN、Inf 、NA、NULL相关推荐

  1. r语言赋值为na_R语言数据框中,用0替代NA缺失值

    MesaSQLite数据库的简单使用方法 前言部分 本文非原创 文章摘自:http://m.blog.csdn.net/blog/wsxzk123/17282325 数据库工具:MesaSQLite ...

  2. r语言赋值为na_r语言将空白格替换成NA

    有数据集类似 user_id                                                      qid137 1 000013046dc0ab29ef8773e ...

  3. C语言学习之将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1. 要求改为1,4,5,6,8。

    将一个数组中的值按逆序重新存放.例如,原来顺序为8,6,5,4,1. 要求改为1,4,5,6,8. #include <stdio.h> #define N 5 void main(){i ...

  4. C语言四轴联动程序,四轴联动程序中F值不恒定之解决方案

    原标题:四轴联动程序中F值不恒定之解决方案 相信出过四轴联动程序的很多朋友都遇到过这种情况:用软件出来的NC程序中进给F值不是我们在刀路里设定的数值,而是一个动态值,特别是在拐弯处.下图是我弄的一个案 ...

  5. R 回归 虚拟变量na_R语言 | 生存分析之R包survival的单变量和多变量Cox回归

    生存分析之R包survival的单变量和多变量Cox回归续前文生存分析(Survival Analysis). 在前文初步简介了生存分析的概念,以及展示了一种生存分析模型Kaplan-Meier的使用 ...

  6. c语言赋值小数,c语言中将一个浮点型赋值给整型时,会不会四舍五入?

    c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算. 将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分,只保留整数部分.将整型值赋给浮点型变 ...

  7. list遍历赋值,防止修改list中的值

    a,b为对象 BeanUtils.copyProperties(a,  b); 1,BeanUtils是org.springframework.beans.BeanUtils, a拷贝到b 2,Bea ...

  8. MySQL查询某个列中相同值的数量统计

    前言 今天突然想到自己写的课表查询Api没有加统计功能,因此今天加上了统计,记录了请求的类型.事件和时间,等新学期到来的时候就能用上了,毕竟刚开学同学们还是比较在意这学期都有什么课的哈哈哈,而且也能够 ...

  9. R语言 赋值符号 的区别

    R语言赋值可以用=或<-,一般都建议使用<-,那你知道这两个之间的区间吗?那你有没有见过'<-'和'='这种赋值方法吗?今天就来和大家聊聊这基本的赋值符号都有哪些区别. 首先我们来看 ...

最新文章

  1. Windows 系统下设置Nodejs NPM全局路径
  2. 广州网络推广介绍有关单页面的优化技巧!
  3. 天气预报开放API调用
  4. 浅蓝色设计类网站模板
  5. linux与windows间共享文件夹 FileZilla树莓派文件传输
  6. [SpringSecurity]web权限方案_自动登陆_原理分析和具体实现
  7. 解决:build_attrs() takes at most 2 arguments (3 given)
  8. (转)Eclipse4.2 Tomcat启动报错 A child container failed during start
  9. MySQL主从介绍及配置
  10. json转map几种方法
  11. Hilbert 变换
  12. 硬盘数据恢复软件免费版有免费使用的吗
  13. Spring源码杂集
  14. 路由器配置深入浅出—路由器接口PPP协议封装及PAP和CHAP验证配置
  15. dell inspiron 只有一个飞行模式 没有wifi_连上WiFi就能打电话?“手机营业厅”中的神奇功能火了...
  16. Obj文件解析相关bug心得
  17. vb透明控件窗体不透明函数
  18. 写在2014年的感恩节
  19. 同源策略、跨域以及跨域的三种解决方案详解
  20. 计算机社团技术部部长述职报告,社团管理部部长述职报告

热门文章

  1. 学习是怎样的一个过程??
  2. 朋友圈(java版)
  3. 学习笔记(01):【中国PHP教育大牛高洛峰】亲授php教程-PHP布尔类型(boolean)...
  4. An unexpected error prevented the server from fulfill your request.(HTTP500)
  5. ubuntu teamviewer被检测为商业用途
  6. Dharma勒索病毒变种 ---加密后文件后缀.bkpx
  7. 24小时之内完成优秀营销方案策划
  8. ui界面设计基本原则
  9. Set? set和Set set的区别?
  10. 判断一个对象是否属于某一类