2020-02-10/11 R語言直播課學習

一. R與Rstudio

R: 編程語言,統(tǒng)計計算和繪圖的環(huán)境。

R studio: R語言的集成開發(fā)環(huán)境

  1. 新建項目R project:
  1. 新建腳本:
  2. R studio界面:(1) 腳本編輯器(2) 控制臺(3) 環(huán)境/歷史命令/連接(4) 文件/圖片/幫助/包
  3. 字號設置:Tools-Global Options- Appearance
  4. 與R"交互":session(1) 控制臺窗口;(2) 腳本編輯器:逐行運行 or 選中運行;"#"為注釋;腳本保存到Rproject下
  5. R語言的幾類命令響應
  • 輸出結果
  • 報錯:Error(檢查命令/環(huán)境/糾正重運行)
  • 警告:Warning(忽略)
  • 沒反應(出現(xiàn)>,表示已完成)
  • 命令正在運行
  • 命令不完整(+后可補全)
  • 出現(xiàn)提示信息(無error可忽略)
  • 進一步選擇(回答問題)

二、數(shù)據類型和向量

1. 數(shù)據類型:

  • 包括:數(shù)值型numeric, 字符型character, 邏輯型logical.
    如何判斷? 使用函數(shù)class()

  • 邏輯型數(shù)據
    比較運算結果的是邏輯值
    <, >, <=, >=, ==, !=
    多個邏輯條件的鏈接
    與&、或|、非!

  • 數(shù)據類型的轉換與判斷
    as族函數(shù)實現(xiàn)數(shù)據類型之間的轉換
    is族函數(shù),判斷,返回值為TRUE 或FALSE

  • 數(shù)據結構
    向量 vector(數(shù)據框單獨拿出來的一列);數(shù)據框 data.frame(約等于表格);矩陣 matrix;列表 list。

2. 向量

2.1 向量生成

  • c() 逐一放到一起
    c(1,2,3,5,6,7)
  • 連續(xù)的數(shù)字用冒號":"
    1:10
  • 由重復的用rep(),有規(guī)律的序列用seq(),隨機數(shù)用rnorm
rep("gene",times=15)  
seq(from = 3,to = 21,by = 3)
rnorm(n = 5, mean = 3, sd = 5)
  • 通過組合,產生更為復雜的向量
    paste0(rep("gene",times=15),1:15)

2.2 對單個向量進行的操作

  • 賦值給一個變量名 <- or =
    x<- c(1,3,5)
  • 簡單數(shù)學計算: 根據某條件進行判斷,生成等長的邏輯向量
  • 初級統(tǒng)計
    max(x), min(x), range(x), mean(x), length(x), unique(x), table(x)

2.3. 對兩個向量的操作

  • 邏輯比較,生成等長的邏輯向量
    x = c(1,3,5)
    y = c(3,2,5)
    x == y
    x %in% y #x中的元素在y中嗎
  • 數(shù)學計算
    x+y
  • 連接:paste
paste(x,y,sep=":")
[1] "1:3" "3:2" "5:5"
  • 交集/并集/差集
    intersect(x,y)
    union(x,y)
    setdiff(x,y)
    循環(huán)補齊:x和y不一樣長
    2.4. 向量篩選(取子集)
    []:將TRUE對應的值挑選出來,F(xiàn)ALSE丟棄
> x <- 8:12
> x[x==10]
[1] 10
> x[x<12]
[1]  8  9 10 11
> x[x %in% c(9,13)]
[1] 9
> x[4]
[1] 11
> x[2:4]
[1]  9 10 11
> x[c(1,5)]
[1]  8 12
> x[-4]
[1]  8  9 10 12
> x[-(2:4)]
[1]  8 12

2.5 修改向量中某個元素
取子集+賦值
"[]" + "<-"

> x[x>3] <- 3
> x
[1] 3 3 3 3 3

三、數(shù)據框、矩陣和列表

Vector 向量 - 一維
matrix 矩陣 - 二維 :多個長短相同、數(shù)據類型相同的向量按列組合
data.frame 數(shù)據框 :多個長短相同、數(shù)據類型可以不同的向量按列組合
List列表:數(shù)據長短可以不同、數(shù)據類型可以不同;沒有行和列的概念,可以有多級元素

1. 數(shù)據框來源

  • 在R中新建
  • 由已有數(shù)據轉換或處理得到
  • 從文件中讀取
  • 內置數(shù)據集

2. 新建數(shù)據框(本質是向量按列組合)

讀取數(shù)據框:read.csv(“gene.csv")

3. 數(shù)據框屬性描述

維度(幾行幾列):dim(df) nrow(df)/nco(df)
行名/列名 :rownames(df)/colnames(df)

4. 數(shù)據框取子集(一個、一行、一列)

4.1 向量 -位置



4.2 根據行名或列名
df[, "exp"]
4.3 提取列的常用操作
數(shù)據框常用操作:dfexp), length(df$exp)

5. 數(shù)據框編輯

取子集¥或[]+賦值操作
df[3,3]<- 5

6. 數(shù)據框進階

(1) 轉置--行變列,列變行:t(df)
(2) 去除含有缺失值的行:na.omit(df)
(3) 兩個表格的連接:
按列連接:cbind (行數(shù)相同)
按行連接:rbind (列數(shù)相同)
merge() - 根據某一相同列合并
(4) 行數(shù)較多的數(shù)據框可截取前/后幾行查看
iris, head(iris,3)
(5) 行列數(shù)都多的數(shù)據框可取前幾行前幾列查看
iris[1:3,1:3]
(6) 查看每一列的數(shù)據類型和具體內容
str(df)
str(iris)

  • 矩陣新建和取子集
    m <- matrix(1:9,nrow=3)


  • 列表新建和取子集
    l <- list(m=matrix(1:9, nrow = 3),
    df=data.frame(gene = paste0("gene",1:3),
    sam = paste0("sample",1:3),
    exp = c(32,34,45)),
    x=c(1,3,5))
  • 刪除變量



四、函數(shù)和R包

  1. 函數(shù)與參數(shù)
    ![](https://upload-images.jianshu.io/upload_images/19530557-466511b4c6ac26c2.png?imageMogr2/auto-
    orient/strip%7CimageView2/2/w/1240)
    寫函數(shù)的函數(shù)


  2. R包介紹

  3. R包來源
    CRAN網站 install.packages()
    Bioconductor BiocManager::install()
    github devools::install_github()

  4. 用于R包安裝的函數(shù)
    安裝后要library()

  5. R包安裝前需設置鏡像
    國內鏡像推薦:
    清華鏡像
    中科大鏡像
    手工設置
    tools - global option - packages
    代碼設置
    options("repos"=c(CRAN="https://mir
    rors.tuna.tsinghua.edu.cn/CRAN/"))
    options(
    BioC_mirror ="https://
    ustc.edu.cn/ bioc

  6. R包安裝和使用的邏輯
    安裝包-加載包-使用函數(shù)
    已安裝、不加載-直接使用::

  7. 常見疑問

  • 大片提示信息:檢查error,無可忽略
  • package not available
    原因1 :包名寫錯
    原因2 :安裝命令使用錯誤
    原因3 :本機的 R 語言版本與包所要求的版本不符(極少)
  • 是否更新
  • 加載A包,報錯B包不存在(復雜)
  • 報錯中由connection or url
    網絡/鏡像檢查
  1. R包如何使用--獲取幫助
    ?函數(shù)
    help函數(shù)
    R包介紹頁面
    少數(shù) R 包有 cheatsheets
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容