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形式,再创建标签)
嗯,完结撒花~~~
r语言转化为python_数值型与字符型转换总结|R语言相关推荐
- R语言学习2.1.数值型与字符型
知识点补充 1.标量:只有一个元素的向量为标量 2.判断数据类型的方法 (1)class(变量) (2)is.数据类型(变量) #TRUE:是,FALSE:否 1.数值型(numeric) 赋值方式 ...
- c语言中长整型变量的值一定大于短整型常量的值,c语言第3讲 常量、变量与标志符 整型、实型、字符型数据.ppt...
c语言第3讲 常量.变量与标志符 整型.实型.字符型数据 第3讲 常量.变量与标志符 整型.实型.字符型数据 2.1-2.5 常量.变量与标识符 例2.1 符号常量的使用 2. 变量 3. 标识符 标 ...
- 前端:JS/17/前篇总结(JS程序的基本语法,变量),数据类型-变量的类型(数值型,字符型,布尔型,未定义型,空型),数据类型转换,typeof()判断数据类型,从字符串提取整数或浮点数的函数
JS程序的基本语法 1,JS是区分大小写的,如:Name和name是不同的: 2,JS中每一条语句,一般以英文的分号(;)结束,在Java中是严格地一定要加上分号,不然会报错:但在JavaScript ...
- Python下数值型与字符型类别变量独热编码(One-hot Encoding)实现
1 OneHotEncoder 2 pd.get_dummies 在数据处理与分析领域,数值型与字符型类别变量的编码是不可或缺的预处理操作.本文基于Python下OneHotEncoder与pd. ...
- [初级]Java中的switch对整型、字符型、字符串的具体实现细节
转载自 [初级]Java中的switch对整型.字符型.字符串的具体实现细节 Java 7中,switch的参数可以是String类型了,这对我们来说是一个很方便的改进.到目前为止switch支持这样 ...
- 整型转字符型以0补齐
将整型转为字符型,已知字符串长度,转换时长度不够,以0补齐 如:a=3,已转换成'03',可用如下函数:str(a).zfill(2)
- 入门必学 | R语言数值型、字符型及因子型数据之间的差异与转换
字符型.数值型及因子型数据之间的转换 数据类型的基本知识 不同数据类型之间的差异 数值型与字符型或因子型绘图时的差异 数值型与因子型和字符型的模型构建时的差异 三种数据类型之间进行转换 常用的三 ...
- C语言常量(整型、实型、字符型、字符串、符号常量)
对于C语言常量,该文章有详讲,由于文章太长,可参考如下思维导图和目录,可通过目录选择自己所需要的内容阅读. 直接常量 1.整型常量 整型常量即整数,包括正整数.负整数和零.C语言中,整型常量可以用十进 ...
- C语言-----格式字符、整型、字符型、浮点型
1.格式字符 格式字符是由"%"和字符组成,其作用是将输出的数据转化为指定的格式输出. 格式字符表如下: %d/%i 有符号的十进制整数,i 是老式写法 %u 无符号十进制整数 ...
最新文章
- C++实现各种排序算法
- [Spring MVC起步]我的第一个MVC
- Java EE EJB拦截器教程和示例
- 搭建本地Ubuntu14.04源
- tkinter message_【莫烦Python】Tkinter 做简单的窗口视窗lt;学习笔记(2)gt;
- 计算C(n,0)+C(n,1)+...+C(n,m)--Problem B. Harvest of Apples
- docker用gpu的参数_Docker化部署(GPU)
- 去掉a标签下划线_编辑器、HTML基础、编码、基础标签
- NLog文章系列——入门教程(转)
- 使用皮卡(pika)操作RabbitMQ
- Windows 系统优化 - 查看并清理临时文件,释放磁盘空间,提高系统运行效率
- 极化SAR图像四成分分解
- 在Mac上阻止相机和麦克风的方法
- PACS—医学影像信息化的基础
- Python库之数据可视化---Matplotlib
- Java并发编程艺术
- Leetcode-892. 三维形体的表面积
- 关于“灵图天行者9 PC 导航伴侣零售版 破解版 ”不能用(需要重新注册)的解决办法
- xsplit PHP扩展
- 鸿蒙 手机 发布时间 2021,2021下半年新机发布时间表_2021下半年新机发布日期
热门文章
- ubuntu cd 改变路径
- 解析URI与URL之间的区别与联系
- 如何使用log4j记录日志
- java 根据时间范围自动算间隔_Java根据开始时间结束时间计算时间间隔 x年x月x日...
- 计算机网络中对等层,【计算机网络】两个网络模型——OSI参考模型和TCP/IP模型...
- 少儿编程150讲轻松学Scratch(三)-关卡类游戏《鱼塘》
- xftp 无法连接linux 22端口,解决Xshell不从22端口连接服务器
- 让一个文字在背景图片水平居中的方法
- 服务器ping不通的解决办法之阿里云云服务器VNC报错Failed to execute /sbin/init
- 前端渲染与后端渲染之间的区别?