作者:易执

     来源:Python读财

经过之前的基础教学,我们可以进入下一个基础教学阶段,那么教学开始。

1、赋值

什么叫赋值呢?

解释起来太麻烦了直接上实践

从图上可以看到a<-1的这个过程就叫赋值,就是把a这个字母赋予一个含义,现在的是为1的,在程序框中输入a就会显示出a的含义,当然这种赋值是可以覆盖的再看图中我又输入了一个a<-1+1的代码,可以看到我再输入a查看含义的时候就发现a表示的含义变了,赋值也可以被看做是一种储存就比如1+1=2,如果直接在程序框里输入1+1会得到结果2,但是不会被保存,这时候如果使用赋值就可以保存下来就像上面写的那样保存到a里去。当然不是什么东西都可以被赋值。

像图中这样阿拉伯数字和符号是不可以被赋值的。

2、数据类型

说完赋值,再说说R可以识别的数据类型,以及各数据类型之间如何转化的。

下表中就是R可识别的数据类型,逻辑型的举例中有个NA我怕有的人不明白还是解释下NA表示空值,因为在我们拿R做数据处理以及数据可视化的时候有可能碰到导入的数据有出现缺失为空,这个时候R会默认用NA来表示空。当然数据中出现空值是需要对数据进行处理的,如何处理会在后面细说。

数据类型

中文意思

举例

numeric

数值型

2 , 1.1 , -5

logical

逻辑型

True , False , NA

character

字符型

“你好” , ”hello”

complex

复数型

3i , 8i ,1+5i

integer

整数型

1,2,3,4(必须为整数)

说完R可以识别的数据,接下来说说字符串的判断,见下表。

数据类型

判断函数

转化函数

numeric

is.numeric

as.numeric

logical

is.logical

as.logical

character

is.character

as.character

complex

is.complex

as.complex

integer

is.integer

as.complex

现在开始实践

就像图中所写的那样,对b做判断给出的结论是TRUE是因为b中储存的都是数值型数据,所以判断b是否为数值型数据时给出的结论是正确,同理判断c给出的结论是错误的是因为c中储存的有数值型数据还有字符型数据的原因。

其他几个函数的判断也是这样就不多说了。

说完判断函数再来说说转化函数,以上图的c为例子当你判断完后发现c中有字符型数据,想要把字符型数据转化成数值型数据就需要用到上表中的as.numeric这个函数。

使用方法如下

这里要解释一下为什么4后面不是we而是NA,因为we是字符型数据,把字符型数据转化成数值型数据这是不合理的,准确来说是把字母汉字之类的字符型数据转换成数值型数据是不行的,所以在转化的时候会产生NA。对于这种情况有两种解决方法第一种把它删除,第二种把字符型数据数值化,这里说的数值化不是说直接用as.numeric来转化而是用代替比如说是否喜欢一个东西,有喜欢和不喜欢,我们把它数值化成1和2,1表示喜欢,2表示不喜欢,虽然这样看起来没什么用,但是如果判断某件事和是否喜欢一个东西的关系的时候就很有用了。

3、对象的数据类型

说完数据类型的转换,现在来说说R中包含的对象类型,R中包含许多的对象类型,每个对象类型可以容纳的数据类型又各不相同,具体看下表。

对象类型

允许存储的数据类型

是否允许同一个对象有多种数据类型

向量

数值型、字符型、复数型、逻辑型

因子

数值型、字符型

数组

数值型、字符型、复数型、逻辑型

矩阵

数值型、字符型、复数型、逻辑型

数据框

数值型、字符型、复数型、逻辑型

时间序列

数值型、字符型、复数型、逻辑型

列表

数值型、字符型、复数型、逻辑型

表上的这几种对象类型我下一篇会逐个讲解,现在先讲讲查看对象类型可以用哪些函数,R中可以用来查询对象类型的函数有class,mode,typeof,格式如下:

class(x)  #用于查看数据的类
mode(x)   #用于查看数据的大类
typeof(x)  #用于查看数据的细类

其中x表示要查找的对象。

既然说了如何查看对象的类型,那么肯定也要说下怎么看对象里的数据类型,代码如下:

#使用class函数查看对象的数据类型
sapply(x,class)
#使用mode函数查看对象的数据类型
sapply(x,mode)
#使用typeof查看对象的数据类型
sapply(x,typeof)

这么说可能不生动,还是来动手写会比较深刻,先创建几个数据类型,代码如下:

d<-data.frame(c1=c(1,2,-3,-1),c2=c(1:4),c3=TRUE,c4=c('你好','hello'),stringsAsFactors=F)sapply(d,class)
sapply(d,mode)
sapply(d,typeof)

运行结果如下:

从结果可以看出sapply(d,mode)可以用来查看大类,c2列是整数型,整数型也可以看作是数值型的一种,sapply(d,class)可以查看得更细一些,sapply(d,typeof)是在class的基础上更细的方法。

这一篇的内容就到这里,喜欢的可以点个关注或者点个在看分享出去。

◆ ◆ ◆  ◆ ◆

长按二维码关注我们


数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。

管理员二维码:

猜你喜欢

● 笑死人不偿命的知乎沙雕问题排行榜

● 用Python扒出B站那些“惊为天人”的阿婆主!

● 全球股市跳水大战,谁最坑爹!

● 上万条数据撕开微博热搜的真相!

● 你相信逛B站也能学编程吗

R语言入门基础——基础操作篇(一)相关推荐

  1. r dataframe 转成向量_快速掌握R语言中类SQL数据库操作技巧

    在数据分析中,往往会遇到各种复杂的数据处理操作:分组.排序.过滤.转置.填充.移动.合并.分裂.去重.找重.填充等操作.这时候R语言就是一个很好的选择:R可以高效地.优雅地解决数据处理操作.(本章节为 ...

  2. R语言可视化绘图基础知识详解

    R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...

  3. Mac版R语言入门(一)R语言入门操作

    文章更新于2023年1月29日: 视频教程--微信公众号:R语言数据分析与实践                      bilibili: R语言数据分析与实践 CSDN:ZhenniLi 第一集: ...

  4. R语言入门——常用函数50个

    R语言函数入门50个基本函数 0引言 1.入门准备操作及函数 1.1R版本介绍以及IDE的选择 1.2IDE及其常用的快捷键 2.空间操作以及纠错函数 2.1 ? .??.help.demo.exam ...

  5. 【万字长文】R语言入门学习路线与资源汇总

    本篇推文就不介绍为什么需要学R了,你能打开这篇文章,说明你有学习R的想法或者正在学习R的路上. 今天简单介绍下R语言的学习路线以及R学习资源汇总. 下面涉及到的R语言书籍我打包了PDF文件,有需要的在 ...

  6. R语言入门4---R语言流程控制

    ​ 流程控制语句在任何语言中都是非常重要的,通过流程控制语句编程者能够根据业务逻辑在程序中设计合理的循环.分支,实现程序各种各样强大的功能.一般实现任一算法的控制结构都可以分为顺序结构.分支结构.循环 ...

  7. R语言入门之Hello world

    R语言入门之Hello world 作者:雨水/家辉,日期:2016-12-20,CSDN博客:http://blog.csdn.net/gobitan 摘要:R语言被称为统计语言.在数据分析上用得很 ...

  8. <<R语言入门与实践>>读书笔记

    这是一个java小码农的跨界试探,如果你对R感兴趣可以买本R语言入门与实践,因为这里只记录了本人觉得有用的基本知识点.如果你只是看个乐呵,祝你有所收获. 序 数据分析具备三个属性 可再现性 自动化 沟 ...

  9. R语言入门1---R语言介绍以及学前注意事项

    R语言是从贝尔实验室的S语言演变而来的,基于S语言开发的商业软件Splus,可以方便的编写函数.建立模型,具有良好的扩展性,取得了巨大成功.1995年由新西兰Auckland大学统计系的Robert ...

  10. R语言|for循环————R语言入门到入土系列(八)

    R语言入门到入土系列   R语言作为数据科学的第一利器:本人介绍了一些R语言的基础入门知识,希望能帮到大家,往期系列文章点击下面文字直达

最新文章

  1. php多个 r n如何过滤,php怎么去掉r n
  2. Spring Boot与MyBatis整合
  3. 不带parent指针的successor求解
  4. python分布爬虫_13天搞定Python分布爬虫(第七天)(Scrapy)
  5. 【译】组织好你的Asp.Net MVC解决方案
  6. 编码速度非常慢_有BUG?MySQL中的 utf8 居然并不是真正的UTF-8编码?
  7. 写程序没思路怎么办?
  8. 大数据时代的回收生意经(淼一专访)
  9. concurrentHashMap扩容细节
  10. linux中pak命令,Linux下Flatpak的安装与使用超详细教程
  11. 福特dms系统服务器,长安福特DMS使用规范.pdf
  12. 万物互联-stm32单片机简介、烧录、编程及其项目环境搭建
  13. 自己实现的promise
  14. 1-十四烷基-3-甲基咪唑六氟磷酸盐([C14MIm][PF6])修饰纳米SiO2二氧化硅(mg级瓶装)
  15. 索尼天气 v1.0.2 魅族定制版,纯净无广告的天气预报应用
  16. C# VS2017中Windows窗体更改图标
  17. 影驰GAMER RGB DDR5-5600评测
  18. idea集成Git后VCS菜单栏被替换为Git解决方案
  19. UPC-2021个人训练赛第20场-部分题解
  20. leetcode 1662. Check If Two String Arrays are Equivalent(python)

热门文章

  1. HUAWEI MateBook新品搭载华为应用市场Windows升级版 支持运行移动应用
  2. 泛滥的“刷脸”流程,可能正在泄露你的隐私
  3. 探迹CRM深度融合钉钉PaaS,实现营销全流程智能化管理
  4. 色彩的数学规则(二)(转)
  5. C语言实现维吉尼亚密码(VS2019)
  6. 【雕爷学编程】Arduino动手做(143)---ML8511紫外线传感器模块
  7. MATLAB中prod函数使用
  8. 宣布与 NBC 合作直播索契冬季奥运
  9. 危害女性健康的四种常见职业
  10. [AHK]用AutoHotkey面向对象实践“观察者模式”