如何学习R语言

  • 1. 入门了解

    • R 能干啥?为啥要学R?

      • 强大的数据分析工具及各种扩展包
      • 高通量的数据处理能力
    • Rstudio(强大的R 编辑器,极大降低了R语言学习难度)

    • 安装R & Rstudio

      • R 镜像:https://mirrors.tuna.tsinghua.edu.cn/CRAN/
      • Rstudio
    • 安装R包

      • install.package() #
      • BiocManager::install() #
      • devtool() #
    • R包的使用

      • >library(“pheatmap”) ##调用程序包,程序包必须被调用才能使用
      • >require(“pheatmap”) ##调用程序包,程序包必须被调用才能使用
      • >update.packages("pheatmap")## 升级程序包
      • >detach("pheatmap")
    • R的各种打开方式 #[https://mp.weixin.qq.com/s?__biz=MzI5NjUyNzkxMg==&mid=2247484507&idx=1&sn=295454a59613bfd977f407958bec787e&scene=21]

      • Revolution R Enterprise (windows)
      • tinn-R (windows)
      • rattle (linux)
      • RKWard( 基于QT)
      • JGR(基于JAVA)
      • Eclipse
      • Red-R(专门用于编辑R分析流程)
      • AirXCell(基于Web界面)
      • Emacs
      • Vim
      • textMate
      • sublime
      • radian(21世纪的R终端,基于Python)
      • VSCode(非常现代化,有很好的扩展生态)
      • Rstudio-server(在浏览器打开服务器上的R,界面与Rstudio一样)
      • Rcode
  • 2. 如何学习R

    • 公众号/ /博客

      • github 软件开发者的聚集地# https://github.com/
      • Y叔 biobabble公众号(R语言大神,写过多个R包,让我仰视的存在)
      • 生信技能树公众号(创始人jimmy是生信技能树论坛的创始人,励志让10万人学会生信,内容也是干货满满)
      • 果子学生信公众号/(生信技能树成员)
      • 徐洲更hoptop -(生信技能树成员)
      • 生信媛公众号
      • 生信菜鸟团博客 # http://www.bio-info-trainee.com/
      • ——上也有许多其他学友写的一些很好的文章,需要知道什么内容也可以在上面搜索。
    • 使用swirl包学习

    • 查看帮助文档

      • Tab键补全:及查看函数的简要说明,当不记得完整函数名或者参数时,使用Tab键能解决你的问题。
      • ?+函数名:查看函数的说明文档,了解函数的功能及参数。
      • ??pheatmap 在线看帮助文档
      • CRAN https://cran.r-project.org/other-docs.html
    • 论坛

      • 生信技能树 # http://www.biotrainee.com:8080/forum.php
      • Omicshare # https://www.omicshare.com/forum/
      • github # 面向开源及私有软件项目的托管平台,在上面有海量的开源代码,也可以提问与软件开发者互动
      • stackoverflow 大名鼎鼎,http://stackoverflow.com/
    • 视频、播客

      • 生信技能树-jimmy # https://space.bilibili.com/338686099/
      • 腾讯课堂 #https://ke.qq.com
      • Omicshare class # https://www.omicshare.com/class/home/index/index
    • 其他方式:百度or谷歌or必应or......
  • 3. R基础语法

    • R中的基本概念:

      • Experession # 表达式;
      • Object # 对象;
      • Function # 函数;
      • operator # 符号;
      • Attributes# 属性 ,对象的特征
    • R语言的符号

      • 注释符:# “#”所有右边的内容为说明,或者注释(包括#)
      • 赋值符:<- 或者= 表示 变量赋值 ,assignment operator
      • 连续符: # 用于创制整数型序列 eg. 1:3 表示1,2,3数学运算 运算后给出数值结果
      • 运算符:+,加; -,减; ,乘; /,除; ^ ,幂;%% 取模(整除…余数) ;%/% 整除;%%,矩阵乘积
      • 比较运算: 运算后给出判别结果 (TRUE FALSE):> #大于, < #小于, <= #小于等于, >= #大于等于 , == #等于, != 不等于
      • 逻辑运算 与、或、非:! # NOT, & , && # AND, |, || # OR
    • 对象# Object 的类型:
      • 数值型 Numeric 如 100, 0, -4.335 Inf#无穷大 NaN# Not a Number
      • 字符型 Character 如“ China”
      • 逻辑型 Logical 如 TRUE, FALSE
      • 整数型 Integer 1
      • 因子型 Factor 表示不同类别
      • 复数型 Complex 如: 2 + 3i
      • NA # 表示缺省
      • 数据类型相关函数:
        • >class(x) ##返回变量x的数据类型
        • >as.numeric(X) ## 将x的数据类型改为数值型
        • >as.logical(X)## 将x的数据类型改为逻辑型
        • >as.character(x)## 将x的数据类型改为字符型
        • >factor() ##用来创建因子
        • >unclass() ## 去除对象的类型
        • >is.na() ##检测是否有缺省NA ###NA values have a class also, so there are integer NA , character NA, etc.
        • >is.nan() ## 检测是否有NaN ###A NaN value is also NA but the converse is not true
        • >complete.cases() # 判断多个向量的缺失值的位置取并集
    • 对象的数据结构

      • 向量 (vector)一系列元素的组合。
      • 因子 (factor)因子是一个分类变量,如 “a”,”a”,” a”,”a”,”b”,” b”,”b”,”c”,” c”
      • 数组 (array)数组是k维的数据表。
      • 矩阵 (matrix)矩阵是数组的一个特例,维数k = 2。
      • 数据框 (dataframe)是由一个或几个向量和(或)因子构成,它们必须是等长的,但可以是不同的数据类型。
      • 列表 (list)列表可以包含任何类型的对象。
      • 数据结构相关函数:

        • >vector() ##创制一个向量eg. >vector("numeric", length = 10) #创制一个长度为10的数值型向量,向量值缺省,缺省值为0
        • >matrix(1:6, nrow = 2, ncol = 3) ##创建一个矩阵,2行,3列,内容为1-6.
        • >dim() ##返回对象的维度属性
        • >list() ##用来创建list list 具有类似[[1]]的Index。
        • >data.frame(foo = 1:4, bar = c( T, T, F, F)) ##创建一个数据框
        • >nrow(x) # 返回对象x的行数
        • >ncol(x) #返回对象x的列数
        • >name(x) # 返回为x的变量名
        • >dimname(x) # 为x对象的维度命名
        • >attributes() #返回对象属性
      • Subsetting #取子集

        • [ # by 用单层方括号来提取向量,列表,因子和矩阵的数据子集,你也可以用-号加括号内的值来剔除你不需要的元素,矩阵的数据按行或者按列可以看成是数字索引,
        • [[ # is used to extract elements of a list or a data frame; it can only be used to extract a single element and the class of the returned object will not necessarily be a list or data frame.
        • $ # 根据名字用于 list or data frame中提取元素 ;在一定程度上美元符号和双层中括号的用途一样。
        • Tips:
          • 当只去矩阵的一组数据时,会返回一个向量. 如果不希望改变数据类型,可以在取子集时设置参数 drop = FALSE.
          • [[ 默认使用精确匹配,$ 允许使用局部匹配,使用参数exact = FALSE 在[[ 中进行局部匹配。
          • 也可以采用逻辑判断来对数据子集进行操作
          • 使用attach函数可以帮助我们在处理多变量数据框时频繁使用$索引。
    • 函数 #function: 函数的调用方法, 函数名 +(arguments)

      • > getwd() #查看当前R 工作的空间目录
      • >setwd() ## 设定工作目录
      • >dir() #当前工作目录下的文件
      • >print() ##在屏幕上打印
      • >set.seed(100)##该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性。#100,的意思为编号,不是数字, 而是应该理解成“编号为一零零的随机数发生”, 下一次再模拟可以采用二零零(200)或者(111)等不同的编号都行。
      • >t() ##实现数据框的行列转换
      • >rnorm(x) ##生成x个随机数
      • >rm() # 或者remove 用于移除对象
      • >ls() # 列出当前所有的变量
      • >str() #展示对象、函数、变量的内部结构列表。
  • 4. 数据的操作

    • 数据读取

      • >read.table;#最常用的读取数据函数
        • 重要的argument参数有:
        • file, 文件名
        • header,是否有表头,header=T #表示将数据的第一行作为标题。
        • sep, 指定分隔符sep=“\t” #表示以Tab键为列分割。
        • colClasses, 给数据指定类型
        • nrows, 指定读取的行数,提高内存利用率。
        • comment.char, 指定注释行的标识,如果没有注释行,设置comment.char=“”
        • skip, 指定跳过哪些行。
        • stringsAsFactors, should character variables be coded as factors?
        • row.names=1 #表示第一列为行名称
      • >read.csv, for reading tabular data,默认:sep=","
      • >readLines, for reading lines of a text file
      • >source, for reading in R code files (inverse of dump )
      • >dget, for reading in R code files (inverse of dput )
      • >load, for reading in saved workspaces
      • >unserialize, for reading single R objects in binary form
    • 数据输出保存

      • > write.table(data,“newdata.txt“,sep=“\t”)
      • >writeLines
      • >dump # dump 保留了元数据,输出单个对象 与dget 匹配
      • >dput # 输出多个对象,与source 匹配。
      • >save
      • >serialize
      • >pdf(“heatmap.pdf”) # 新建一个pdf文件,0 kb,之后的绘图会存入heatmap.pdf .pdf文件是矢量图,不考虑像素。
      • 但是必须保存后才能看
      • >png( “heatmap.png”,width=480,height=480)# 可以输出为 png格式,但需要确定像素。
      • >dev.off() # 保存并退出
    • 与外界的连接 通过文件

      • >file,#建立与一个文件的连接,注意,不是打开文件。
      • >gzfile,# 建立与"*.gz"文件的连接a file compressed with gzip
      • >bzfile,# 建立与"*.bz2"文件的连接a file compressed with bzip2
      • >url, # 建立与网页文件的连接a webpage
    • 数据操作

      • 赋值: <- 或 = 给变量赋值
      • c() # 用于创制向量
      • rbind(a,b) # 将a、 b按行合并为矩阵
      • cbind(a,b) # 将a、 b按列合并为矩阵
      • rep() # 生成一组重复值
    • 循环与条件判断
      • if(){ }else { }# testing a condition
      • for (){} # execute a loop a fixed number of times
      • while ( ) # execute a loop while a condition is true
      • repeat #initiates an infinite loop ,The only way to exit a repeat loop is to call break. #break the execution of a loop
      • next: #skip an interation of a loop
      • return: #exit a function
      • which()
    • 运行脚本
      • > source(" regression.r") # 通过source()函数运行
      • 通过R 脚本编辑器运行 # 路径:文件 > 运行 R脚本文件 > 选择 "regression.r“
      • 直接粘贴到R控制台 ctrl+c, ctrl+v
  • 5. R数据可视化

    • ggplot2
  • 6. R数据分析

    • tidyverse
    • 数据计算:
    • 统计检验:

暂时总结了这么多,还在学习中……

你可能感兴趣的:(如何学习R语言)