关键词:R; 排错; factor; numeric;

女朋友发消息说用R处理数据时又出错了,而且找不到解决办法,只好让我看看。

发过来的原始文件就是一个csv,从文件大小上来看是一个小文件。那首先加载文件到R并看一些各列的情况:

可以看到中间三列Ch5.Ch6、Ch7.Ch6、Ch8.Ch6的数据类型是factor,而不是预期的numeric类型。女朋友抱怨遇到的问题就是指这个。既然类型不对,那就转换类型呗。利用as.numeric()函数进行转换:

奇怪,Ch5.Ch6那一列并没有转换成预期的0, 0.003413269等数字,而是5065, 4642这些整数。我立马意识到这些整数是“因子的顺序”,而不是原始的值。其实,进一步查看as.numeric()函数的说明文档可以发现里面提到了这一点:

里面提到的示例是:

既然说明文档里给出了转换类型的正确方法,那我们就重新加载文件试一试:

上面这张图信息有点多。首先我们注意到经过as.numeric(as.character())的转换后,Ch5.Ch6这一列的确变成我们预想的样子。

但是,转换后出现的警告信息(那一段warning message)说引入了NAs,这提示我那一列中很可能有字母。为什么这么说?因为as.numeric()函数的说明文档里有一个现成的例子说明了这一点:字母”B”的存在让as.numeric()函数引入了NA。

那我们就通过检查NA的位置来看看那个位置原来的值是不是有字母。
首先来看一下NA出现的位置:

可以看到,Ch5.Ch6这一列有三行出现了NA。那我们来看看这些行原来的值是不是字母:

果然,那三行的原始值存在着字母。

至此,原因终于找到了!接下来就是修正这些错误了。你可以直接在原始文件中进行修改,然后重新加载到R中;或者直接加载,然后在R中修改,比如像这样:

上面一共输入了四个命令,第一个命令重新加载文件到R中;第二个命令将Ch5.Ch6这一列由factor类型转换为numeric类型;第三个命令将Ch5.Ch6中引入的NA全部替换为一个中间数值(比如0);第四个命令确认了Ch5.Ch6这一列已经全部变成了numeric类型。

对另两列Ch7.Ch6、Ch8.Ch6也做类似处理。至此,一个排错的过程就全部展现在这里了。这件事情再次提醒我两点:阅读说明文档可以让你少犯错!数据清洗是多么重要,如果这一步偷懒,后面要花更多精力来排错!

如果有任何建议欢迎交流!

(公众号:生信了)

R(一)一次R排错的全过程相关推荐

  1. Microsoft R 和 Open Source R,哪一个才最适合你?

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. R 是一个开源统计软件,在分析领域普及的非常快. 在过去几年中,无论业务规模如何,很多公司都采 ...

  2. 启动R环境并执行R脚本

    启动R环境并执行R脚本 # 打开window系统本身的cmd或者anaconda prompt # 输入R,就会进入R console环境: R可以用'demo()'来看一些示范程序,用'help() ...

  3. 给定两个数r和n_输出r的n次方 java_滴滴出行2018编程题

    [编程题] CIDR去重 时间限制:1秒 空间限制:65536K 无类别域间路由(CIDR)是一个用于对IPV4地址进行分类表述的方法.CIDR 路由描述的IP地址组的子网mask长度是可变长度, 例 ...

  4. r语言线性回归_(R语言)线性回归:机器学习基础技术

    线性回归: 使用最小二乘法预测定量的结果的一种回归模型. Anscombe数据集 它由统计学家弗朗西斯·安斯库姆(Francis Anscombe)建立,用来强调数据可视化和异常值在数据分析中的重要性 ...

  5. r语言必学的十个包肖凯_30 天学会R DAY 14:R语言必学包dplyr

    原标题:30 天学会R DAY 14:R语言必学包dplyr 第14天 R语言必学包dplyr R语言非常讲究数据的整理,我们在7-13天的R语言学习内容中,着重都是关于R语言的整理,各种方法对数据进 ...

  6. 【数据分析R语言系列】R和RStudio的下载和安装, R在 Ubuntu 和CentOS 系统下的安装

    文章目录 准备工作 R 的下载和安装 RStudio 的下载和安装 配置(可选) 常见问题与方案 R 在 Linux 系统下的安装 Ubuntu 从源安装 R CentOS 从源安装 R Rtools ...

  7. 生活中回归分析实际例子_回归分析中R方和调整R方的区别

    介绍 当我开始我的数据科学之旅时,我探索的第一个算法是线性回归. 在理解了线性回归的概念和算法的工作原理之后,我非常兴奋地使用它并在问题陈述中做出预测.我相信你们大多数人也会这么做的.但是一旦我们建立 ...

  8. r语言代码html,R语言学习笔记-内附实例及代码

    R语言入门 R是开源的统计绘图软件,也是一种脚本语言,有大量的程序包可以利用. R中的向量.列表.数组.函数等都是对象,可以方便的查询和引用,并进行条件筛选. R具有精确控制的绘图功能,生成的图可以另 ...

  9. 在$x_0$处全导数可逆的函数$f:\mathbf{R^n}\to\mathbf{R^n}$的一个性质

    注:该文章宣布报废,因为结论是错误的.关键的错误证明已经用红字显示.我是看了matrix67的函数上某一点导数为正,该点邻域不一定形成单增区间才想起自己的错误的. 设$f:\mathbf{R}^n\t ...

  10. 8.编写程序,要求如下: 定义名为VolumeArea的抽象类,在其中定义圆周率的值为3.14159,并定义两个抽象方法volume(double r)和area(double r),它们的返回

    8.编写程序,要求如下: 定义名为VolumeArea的抽象类,在其中定义圆周率p的值为3.14159,并定义两个抽象方法volume(double  r)和area(double  r),它们的返回 ...

最新文章

  1. SpringMVC接受JSON参数详解及常见错误总结我改
  2. Python网络编程中的select 和 poll I/O复用的简单使用
  3. 利用 assistant_如何使用Dialogflow对Google Assistant操作实施本地履行
  4. 中国地质大学网络计算机考试试题,2017年中国地质大学(武汉)计算机学院830计算机软件综合之计算机网络考研题库...
  5. 详解JavaScript的闭包
  6. 半导体物理学习记录——概述
  7. (简单控制) 关于使用NI max 的GPIB来控制安捷伦万用表34401A 的操作方法
  8. 批量标准矢量shp转txt工具shp2txt、批量txt转shp矢量工具txt2shp(Arcgis之国土报备、预审报批、勘测定界、自然资源系统)
  9. ps界面为啥突然变大了_【新手必看】使用PS绘画需要学会哪些基本操作?
  10. Frefox安装AeroFox皮肤插件后菜单字体的美化
  11. 正确的价值观和干部队伍引领华为走向长久成功
  12. 6.11编写计算正方体、圆柱体、球体的表面积和体积的类。
  13. 新世纪大学英语(第二版)综合教程第一册 Unit 3 (中英翻译和重点单词)
  14. 详解 Linux 系统日志分析
  15. ftl模板文件编辑器
  16. 农历php,PHP阴历转农历的实现代码
  17. win10系统 桌面点右键经常转圈圈卡住
  18. android广播 有序 无序,Android全局广播(无序,有序)
  19. 在【Window】系统下更改 【pip install】 默认安装依赖路径
  20. Javascript之网页版待办事项

热门文章

  1. 免费专利检索和下载网站(亲测超实用)
  2. 质子之死:粒子衰变如何推出万有理论
  3. PCI Express 协议基础
  4. 【自省】线程池里的定时任务跑的可欢了,可咋停掉特定的任务?
  5. 试验试剂LR,双官能交联剂Methyltetrazine-PEG12-DBCO,四嗪二苯基环辛炔
  6. 如何查询网站IP地址
  7. 为什么说学计算机更有远见,“孩子,我为什么逼你读书”:有远见的父母,都有点心狠...
  8. 深入理解 TORCH.NN
  9. 期盼小豆发芽(2008.7.20)
  10. The Traitorous Eight in Semiconductor 半导体八叛逆