r语言转化为python_数值型与字符型转换总结|R语言

在日常碰到问题时出现当前“数据类型不能进行操作”的提示时还是有些脑壳疼,所以这次整理了针对R数据类型转换的总结。理论部分主要是R for Data Science的向量节选翻译、《R语言实战》第二章2.2创建数据结构、《R in a Nutshell》以及猴子老师的向量ppt。

————文章结构——————

一、理论知识向量、矩阵、数据框等基本介绍

integer和double的区别

向量和因子区别

tibble和data frame区别

二、举个例子某一列文本转为数字

某一列数字转为文本

三、总结一下

——————————————

一、理论知识

1.向量、矩阵、数据框等基本介绍

有两种类型的向量:

(1)原子向量,其中有六种类型:logical,integer, double, character, complex和 raw,integer和double统称为numeric(数值)向量。

(2)列表,有时称为递归向量,因为列表可以包含其他列表。

原子向量和列表之间的主要区别在于原子向量是均匀的,而列表可以是异构的(即列表的数据结构可以不一致)。还有一个相关的对象:NULL。NULL通常用于表示缺少矢量(与NA用于表示矢量中缺少值的情况相反)。NULL通常表现为长度为0的矢量。下图为关系图。图片来源:http://r4ds.had.co.nz/vectors.html

可以说,向量是最基本存在,那么向量和矩阵、数组、数据框这些又是什么关系呢?

向量最基础。

数组:多维的向量(向量可以理解为一维数组,矩阵可以理解为二维数组)

#一维数组(向量)

a

a

#二维数组(矩阵)

b

b

#多维数组(还是数组)

c

c

结果:

这里补充以下,如果矩阵按列填充,需要加上byrow=T

b

而对于数据框,我的理解是,我们最常使用的excel表就是数据框模式,比如医院数据,病人编号、性别、血型,每一列都是相同的数据结构,结合成一个大表供我们分析。

2.integer和double区别

数值型向量包含两种类型:integer和double

我以前老纠结啥时候辨别这两类数值型向量呢?看图来操作:

查看数据类型最好用typeof,可以看出double比int要普遍一些,一般的c(1,2,3)都是double,但如果都加了L,变为integer了。这两类数值型向量不用太担心二者关系,一般R可以内部自动转换这两类数值然后计算。

也可以转换,转换代码为:

as.double()

as.integer()

3.向量和因子区别

另一个例子:

上图来源:书

再举个例子图片来源:http://www.cyclismo.org/tutorial/R/types.html

总结来说,就是属于类别的向量最好转化为因子。比如性别(男、女)、成绩评级(优秀、良好、及格、不及格),这也说明了为什么总会看到stringasfactor=False.我们一般不选择把向量先全部转为因子,面对分类型变量才考虑那么做。

4.tibble和data frame区别

这两个功能可以说完全一样,只是在看书过程中发现tibble慢慢比data frame更流行起来,详情可以见这篇文章tibble 1.0.0 | RStudio Blog,在导入dplyr包后,用tibble比用data frame更快捷简洁,tbl_df代替了table(好吧我想说,一般还是用data frame,在用到dplyr包时,改用tibble就行)

二、举个例子

1.某一类文本转为数字

有一组这样的数据,我想把性别一栏转为女为1,男为2,方便计算,如何做?

setwd("c:\\Users\\Administrator\\desktop")

data1

typeof(data1)

table(data1$children)

a

b

data1$gender

结果如下:

貌似可以,但查看结构类型,还是字符串形式,需要转为数值型才能进行后续计算。

data1$gender " />

不用担心了,已经完全转换好了。

2.某一类数字转为文本

还是这个例子,如果想把children一列转为yes(孩子数>0)和no(孩子数=0),如何做?

输入代码:

data1$children[data1$children > 0]

data1$children[data1$children == 0]

data1$children

levels=c(0,1),

labels=c("No","Yes"))

显示结果:

这里补充一句,函数factor()可为类别型变量创建值标签,代码中levels代表变量实际值,labels表示包含了理想值标签的字符型向量。

三、总结一下

本文为数据结构的温习,感觉向量是地基,地基里有土渣渣(有数值型【数值型又包括double和integer】,逻辑型【TRUE,FALSE,NA】,字符型等),整个房子是数组,地基+一楼是向量,二楼是矩阵,房子和附近居民区构成数据框。

文本转为数值型(用sub替换 --> as.numeric一下)

数值型转为文本(先转为factor形式,再创建标签)

嗯,完结撒花~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

input 输入值的监听 禁止输入特殊字符

1.input 输入值的监听 //用于监听input的值变化(input的值产生变化才会触发事件)(function ($) {$.fn.watch function (callback) {return this.each(function () {//缓存以前的值 $.data(this, originVal, $(this).val());//event $(this).on(keyu…

android 如何extends 多个,Android多线程:继承Thread类 使用解析(含实例教程)

前言在Android开发中,多线程的使用十分常见今天,我将全面解析多线程其中一种常见用法:继承Thread类。目录示意图1. 简介示意图2. 使用讲解2.1 使用步骤示意图2.2 具体使用// 步骤1:创建线程类 (继承自Thread类)class MyThread ext…

适用于Apache Hadoop 2.0 M5的Spring

Spring高兴地宣布了Spring for Apache Hadoop 2.0 M5里程碑版本,同时它们也越来越接近候选版本。 在Spring博客中 ,新版本2.0与1.0版本之间有很好的比较。 根据它: 用于Apache Hadoop的Spring 1.0版本将HDFS和MapReduce与MapReduce v1或MapR…

汇编语言 第三章小节

汇编语言第三章小结 概述: 此章节的总标题叫做 “寄存器(内存访问)”, 其教学目的是“从访问内存的角度继续学习几个寄存器“。那么,介绍了哪些寄存器呢。其一: 用来访问数据段的”DS寄存器“; 其二&#x…

激发你的灵感:16个精美视差效果网页设计作品

对于视差滚动(Parallax Scrolling),关注网页设计的朋友都不会陌生。在网页设计中,视差滚动是一种很特别的网页设计技术,通过让多层背景以不同的速度或者不同的方向移动形成 3D 运动效果,有很强的视觉冲击力…

Eclipse的Mockito模板

有时候,我想念树林里的树木-那是一段令人不安的长时间。 我最近才再次意识到这一点,在无数次中键入了一个更详细的模拟表达式。 有问题的语句是doAnswer(Answer)构造,使用涉及到的静态导入和泛型的东西进行编码总是很麻烦。 尽管我定期使用E…

【洛谷2801】教主的魔法(分块经典入门题)

点此看题面 大致题意: 给你一个序列,要你支持两种操作:第一种是区间加法,第二种是查询区间内大于等于\(x\)的数的个数。 考虑分块 这应该是一道比较经典的分块入门题吧。 首先,我们将序列分块。 对于修改操作&#xff…

cut和tr命令的联合使用

cut的-d选项只能是单个字符,而对于多个连续相同字符分隔的字段,单凭cut命令是达不到想要的效果的,特别是多个连续空格分隔时。 但借助tr -s的压缩重复字符功能,可以将多个连续空格压缩为一个空格,然后再交给cut处理就容…

使用 Web Tracing Framework 分析富 JS 应用的性能

来自谷歌的 Web Tracing Framework 包含一组工具和脚本,用于 JavaScript 相关代码的性能分析。它是重 JavaScript 应用程序的理想选择,而 JavaScript 仅用于简单的交互的网页可能没有必要。有一个手动嵌入选项和一个 Chrome 扩展,用于获取内部…

php yii2 获取表里最大的id_Yii2中自带分页类实现分页

1.首先写控制器层先引用pagination类use yiidataPagination;写自己的方法:function actionFenye(){$data Field::find(); //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写$pages new Pagination([totalCou…

android 操作系统升级,关于手机操作系统升级的问题

最近身边的好几个朋友问我操作系统方面问题,操作系统就是负责对计算机硬件进行直接控制以及管理的系统软件,它包含的功能也是多方面的,一般包括处理器管理,储存,文件,设备以及作业管理等等。把操作系统的内…

FindBugs Maven插件教程

FindBugs是一种静态代码分析工具,可识别从Java代码中发现的问题。 我们可以使用FindBugs Maven插件将FindBugs集成到我们的构建过程中。 这篇博客文章确定了四个典型的用例,并描述了我们如何配置FindBugs Maven插件以支持每个用例。 描述的用例是&…

Mac包管理神器Homebrew

概念 简称brew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,相当于Red hat的yum、Ubuntu的apt-get。 安装命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 常…

网站大流量高并发访问的处理解决办法

————————目录————————- 1、硬件升级2、服务器集群、负载均衡、分布式3、CDN4、页面静态化5、缓存技术(Memcache、Redis)以上为架构层面以下为网站本地项目层面6、数据库优化 1、数据库分表技术 2、数据库读写分离 3、表建立相应的索引7、禁止盗链8、控制大文…

【完成整理】45套很酷的长影影 LOGO 设计

长阴影其实就是扩展了对象的投影,感觉是一种光线照射下的影子,通常采用角度为 45 度的投影,给对象添加了一份立体感。长阴影(Long Shadow)概念来自于最新非常流行的扁平化设计(Flat Design)。扁…

简述select语句的完整语法_SQL里的各种语句的完整语法

SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBA…

android 坐标点计算器,Android实现简易计算器

开之前我还是想问问老师,为什么一定要星期天前交作业呢?由于条件限制,作品是赶出来的不是细细琢磨出来的。所以在这版apk中功能较为简易,有待后期再不断更新与优化总体效果图如下布局activity_main.xml部分代码功能代码MainActivi…

使用反射进行测试

根据我以前的帖子,我正在撰写有关“单一责任原则”的演讲。 我花了大部分时间。 同时,我想分享一个示例代码,说明如何在类中测试内部字段。 我这样做是为了进行特殊的测试,这更多的是集成测试。 在依赖类的标准单元测试中&#x…

1的恢复出厂设置在哪里_罗斯蒙特变送器怎么恢复出厂设置?

罗斯蒙特变送器怎么恢复出厂设置?特殊情况下,罗斯蒙特变送器需要恢复出厂设置。罗斯蒙特变送器进行出厂设置的方法非常简单,只需要用手操器或AMS设备管理器就能操作。罗斯蒙特手操器里有一个恢复出厂调整值–传感器量程调整命令,使用此命令就…

【技术累积】【点】【java】【25】Orderd

基础概念 Orderd是spring core中定义的一个接口,使用它以及相关的Comparator和Order注解,可以实现对元素的排序。 Order 直接先说下Order注解吧,使用场景较多。 Retention(RetentionPolicy.RUNTIME) Target({ElementType.TYPE, ElementType.M…