R语言数据类型

R语言数据类型

在这里只讲三种数据类型

数值型(numeric)

字符型(character)

逻辑型(logical)

来自生信技能树小洁老师课件图

在R语言里的数据框严格区分列(名)与行。第1列(gene)是字母和数字的组合,第2列(logFC)是数字,第3列(positive)为逻辑值,第4列(group)为字母和数字的组合,有重复。

1.数值型(numeric)

如1.3, 2,数字是最直观的,直接写就可以,可以做运算。

2.字符型(character)

包含英文基因名,分组等,不是纯数字的东西写在代码里,不能凭空写,一定加上引号,如”a“,”nn“,不加引号会报错,引号单或双引号都可以。

3.逻辑型(logical)

R语言里严格区分大小写和中英文,逻辑值只认识TRUE或是T,FALSE或是F,第三种取值为NA缺失值(未知值),NA是存在但是未知,有一种叫不存在,不属于NA。数值型和字符型也有NA,意味着NA可以存在三种数据类型中。

判断数据类型的函数:class(),将要判断的内容写在括号里。

#分别判断”a“,TRUE,3是什么数据类型?
class("a")
#[1] "character"
#注意a要加引号,a是不加引号的情况,如a=1,a被赋值,是变量,可以直接写成class(a),不需要加引号。
##用class()判断,字符要加引号,变量名不加引号。
class(TRUE)
[1] "logical"
class(3)
[1] "numeric"

数值型在R语言里可以做计算;字符型里存放各种信息,如基因名字,分组信息等。计算机最底层就是1和0;逻辑型,在这里讲TRUE和FALSE,作用其它运算的返回结果会是逻辑值,非常重要。

3.1逻辑型数据
  • 比较运算的结果是逻辑值:>, <, <=, >=, ==, !=
######比较运算的简单做法
2==6
##2和6是相等的吗?
#[1] FALSE
5!=7
##5不等于7吗?
#[1] TRUE

!表示否定的意思

  • 逻辑运算多个逻辑条件的连接与&或|非!
######比较运算的复杂化(用多个条件连接到一起成为一个新的条件去判断)
7<9&8>9
#[1] FALSE
##&为and的意思,两个条件同时满足吗,同时满足返回TRUE,不同时满足返回FALSE。&连接的多个条件只要一个条件不满足,返回FALSE。

7<9|8>9
#[1] TRUE
##|为或者的意思,连接的多个条件,只要有一个满足,就返回TRUE。

!(4>5)
#[1] TRUE
##!表示非,TRUE变FALSE,FALSE变TRUE,白的为黑,黑的为白

4.数据类型的判断和转换

4.1 is族函数,判断,返回值为TRUE和FALSE

is.numeric():是否数值型数据
is.logical():是否逻辑型数据
is.character():是否字符型数据

is问:xx数据属于数值型吗?

回答:是(TRUE)或否(FALSE)

is.numeric('ABC')
#[1] FALSE
##判断ABC属于数值型吗?不是返回FALSE。
is.numeric('68')
#[1]FALSE1
##'68'带引号为字符型,不是数值型,所以返回是FALSE。
4.2 as族函数实现数据类型之间的转换。

as.numeric():将其他数据类型转换为数值型
as.logical():将其他数据类型转换为逻辑型
as.character():将其他数据类型转换为字符型

as.numeric("8")
#[1] 8
##如果有成千上百个数需要转换,先赋值给一个变量,括号里只写变量的名字,就可以实现批量转换。

补充知识:

需要在Rstudio里通过运行代码来直观感受R语言数据类型。了解初学者经常遇到的几种报错,知道怎么解决以及避免报错,对后面的学习(或是实战)非常有用。

常见报错与避免报错

常见报错:

引号不成对,函数名字拼写错误,英文字母不区分大小写。

报错信息永远出现Error这个关键词。

来自生信技能树小洁老师课件图

截图里最后一个报错:class?,问号在哪儿就错在哪儿,因为使用中文输入法的括号。

报错Error后常出现的提示信息

  • object表示数据有问题;

  • function表示函数有问题;

  • unexpected表示代码有问题,出现什么对应从哪儿操作。

避免错误的小窍门:
  • 第一个小窍门:键盘上的上下键

控制台上运行命令出错了,想改。

光标放在>后面,摁向上键,即可修改上一条命令重新运行。在控制台运行过的命令直接可以按键盘上的上下键进行翻看,可以修改。比如class(a),忘了加引号,在控制台上的>后面按向上键,双击a选中,按shift键之后按引号键,注意一定是在英文状态下操作。

  • 第二个小窍门:Tab键

打出前几个字母,即出现提示,摁上下键可翻动,按tab键可自动补全。对于名字长的函数,输入前几个字母,按tab键补全,避免手写错误。

需要用引号,一般先写引号,或是写完后选中,按shift“ ”,引号一定要成对出现。

说明

以上内容是听生信技能树小洁老师的R语言线上课,根据自己的理解记录下来,小洁老师授课非常细心,对不同水平的同学都照顾到,并且补充很多技巧以及注意事项。

R语言有两大功能:统计数据和可视化(作图)。了解R语言的数据类型,知道R语言用什么数据类型能画什么图,很重要,基础很重要!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容

  • 内容来源:https://www.runoob.com/r/r-data-types.html[https://w...
    惊鸿影阅读 471评论 0 0
  • 数据类型变量不会声明为某种数据类型。 变量分配有R对象,R对象的数据类型变为变量的数据类型常用R对象类型矢量列表矩...
    yuanyb阅读 686评论 0 0
  • R语言支持的数据类型 数值型(numeric) 复数型(complex) 逻辑型(logical) 字符型(cha...
    ad12c86b9c4f阅读 25,000评论 0 5
  • 通常,在使用任何编程语言进行编程时,需要使用各种变量来存储各种信息。变量只是保留值的存储位置。这意味着,当你创建一...
    D_MarsD阅读 915评论 0 0
  • 1.字符串 1.连接字符串 - paste()函数 语法说明 参数解释 2.格式化数字和字符串 - format(...
    地平线上的背影阅读 808评论 0 1