生信马拉松 Day1

2024-01-08 23:26:50 浏览数 (2)

模块一 R和Rstudio

Q1.R语言

R语言包括 数据 函数 两个部分,学习R语言本质上是学习用函数处理数据的过程

这个过程分为两步:

  1. 需要用什么函数/R包
  2. 把数据处理成什么格式传输给函数/R包,数据整理的过程是相对较难且体现学习R必要性的部分,虽然excel等常规工具也能对数据格式进行处理,但可能出现错误,例如把基因名自动更改为日期

除了数据处理外,R的作用还体现在 统计分析 可视化,这些功能都是通过现成的函数或者修改现成函数来完成

R的优点

开源 可扩展(指通过新的R包实现新的功能) 简单有效(比其他语言简单,相比网页工具可以批量完成对大量数据的操作)

Q2:什么是R studio

集成开发环境(其中左下角的控制台就是从R中继承而来,其他部分是 R studio特有的) 图形界面 开源免费

模块2 Rproject

需要注意的点:

  1. Rproject的文件名不要用中文或者包含‘-’号
  2. 新版本可能出现python报错

Error in if (file.exeists(pythonPath)) return (pythonPath):

argument is of length zero

应对:1.忽略2.装python但不用 3.设置选项在tools-global options里把python的对勾去掉

3. 字号设置,在global options里,appearence-editor font size

4. 与R“交互”(交互式会话,session)

R的运行逻辑是:用户——发送命令,R——执行并返回结果(有错报错,没错返回结果)

(1)控制台窗口(适合临时使用)

可以直接输入命令,控制台会显示命令的结果,但session关闭时会清空

? 函数名称 可以查看函数的含义

或者输入数据去猜

R语言里的函数特征:括号前面的就是函数名(函数的名称是别人规定好的,只能使用不能篡改,或者自己有能力撰写函数,自定义函数的名称就是可修改的)

(2)脚本编辑器

有三种运行方式:

a. 在一行的任意位置点击Run,此时为逐行运行

b. 选中连续几行点击Run,此时为选中运行

c. 快捷键:command enter(Mac),control enter(windows)

输入“#”,可以在“#”后面添加注释

5. Rproject 是脚本、图片、文件的默认保存位置,也是文件读取的默认位置(这个文件夹也叫工作目录,working directory,简称wd)

因此,只要有一个.Rproj文件,可以将这个文件复制到任何一个文件夹里,打开之后默认工作目录就会在相应的文件夹中

模块3 R语言的报错

1.报错:Error

处理:检查命令,检查环境,修正后重新运行

2.警告:Warning

可以忽略,后面如果有报错或者意外结果再检查

3.“没反应”,出现“>”,表示已运行完成

4.运行卡住时,中止(点击红色键)或重启session,如果卡太死就用任务管理器(活动监视器)结束进程,还不行就重启电脑

5.出现“ ”,表示命令不完整

处理:补全或者按ESC键退出

6.出现红色提示信息

处理:检查是否有Error,没有就可以忽略

7.进一步选择update all/some/none?

处理:需要输入a/s/n,然后回车;输入其他回答会一直问,不能继续运行

模块4 数据类型

在R的数据框中,列名和行名不属于表格的正式内容

数据类型:

1.字母 数字/字母,字符型,character,需要用单引号或者双引号,前后需相同

2.单纯的数字,数值型,numeric,纯数字不需要任何说明和修饰

3.逻辑型,TRUE/T,FALSE/F,不支持小写;不正常取值NA(数值和字符也可以出现NA,代表存在但未知的值)

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

常见报错

1.对象没有增加引号

2.拼写错误

3.中文模式输入的符号

unexpected是代码错误的关键词

其他:

1. R中可以使用Tab键补齐函数

2. 控制台可以通过方向键,使上句代码处于可编辑的状态

3. 脚本打开是乱码的解决方案:File-reopen with ecoding,UTF-8或者GB2312

逻辑型数据往往是数据处理运行的结果

1.比较运输的结果是逻辑值

>,<,<=,>=,==,!=

2.逻辑运算 多个逻辑条件连接

与&、或|

3.否定,非!

例!(4>5)

数据类型的判断和转化

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

is.numeric()是否数值型数据

is.logical()是否逻辑型数据

is.character()是否字符型数据

as族函数实现数据类型之间的转化(但是要可塑之才,例如数字变成字符,或者本体是数字的字符)

as.numeric()将其他数据类型转换为数值型

as.logical()将其他数据类型转换为逻辑型

as.character()将其他数据类型转换为字符型

生信技能树,生信马拉松

0 人点赞