模块一 R和Rstudio
Q1.R语言
R语言包括 数据 函数 两个部分,学习R语言本质上是学习用函数处理数据的过程
这个过程分为两步:
- 需要用什么函数/R包
- 把数据处理成什么格式传输给函数/R包,数据整理的过程是相对较难且体现学习R必要性的部分,虽然excel等常规工具也能对数据格式进行处理,但可能出现错误,例如把基因名自动更改为日期
除了数据处理外,R的作用还体现在 统计分析 可视化,这些功能都是通过现成的函数或者修改现成函数来完成
R的优点
开源 可扩展(指通过新的R包实现新的功能) 简单有效(比其他语言简单,相比网页工具可以批量完成对大量数据的操作)
Q2:什么是R studio
集成开发环境(其中左下角的控制台就是从R中继承而来,其他部分是 R studio特有的) 图形界面 开源免费
模块2 Rproject
需要注意的点:
- Rproject的文件名不要用中文或者包含‘-’号
- 新版本可能出现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()将其他数据类型转换为字符型
生信技能树,生信马拉松