2020-02-10/11 R語言直播課學(xué)習(xí)

一. 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. 字號設(shè)置:Tools-Global Options- Appearance
  4. 與R"交互":session(1) 控制臺窗口甸饱;(2) 腳本編輯器:逐行運行 or 選中運行;"#"為注釋;腳本保存到Rproject下
  5. R語言的幾類命令響應(yīng)
  • 輸出結(jié)果
  • 報錯:Error(檢查命令/環(huán)境/糾正重運行)
  • 警告:Warning(忽略)
  • 沒反應(yīng)(出現(xiàn)>雄右,表示已完成)
  • 命令正在運行
  • 命令不完整(+后可補全)
  • 出現(xiàn)提示信息(無error可忽略)
  • 進一步選擇(回答問題)

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

1. 數(shù)據(jù)類型:

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

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

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

  • 數(shù)據(jù)結(jié)構(gòu)
    向量 vector(數(shù)據(jù)框單獨拿出來的一列);數(shù)據(jù)框 data.frame(約等于表格)乡括;矩陣 matrix肃廓;列表 list冲簿。

2. 向量

2.1 向量生成

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

2.2 對單個向量進行的操作

  • 賦值給一個變量名 <- or =
    x<- c(1,3,5)
  • 簡單數(shù)學(xué)計算: 根據(jù)某條件進行判斷,生成等長的邏輯向量
  • 初級統(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ù)學(xué)計算
    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對應(yīng)的值挑選出來吝沫,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ù)據(jù)框递礼、矩陣和列表

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

1. 數(shù)據(jù)框來源

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

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

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

3. 數(shù)據(jù)框?qū)傩悦枋?/h2>

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

4. 數(shù)據(jù)框取子集(一個将硝、一行恭朗、一列)

4.1 向量 -位置



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

5. 數(shù)據(jù)框編輯

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

6. 數(shù)據(jù)框進階

(1) 轉(zhuǎn)置--行變列,列變行:t(df)
(2) 去除含有缺失值的行:na.omit(df)
(3) 兩個表格的連接:
按列連接:cbind (行數(shù)相同)
按行連接:rbind (列數(shù)相同)
merge() - 根據(jù)某一相同列合并
(4) 行數(shù)較多的數(shù)據(jù)框可截取前/后幾行查看
iris, head(iris,3)
(5) 行列數(shù)都多的數(shù)據(jù)框可取前幾行前幾列查看
iris[1:3,1:3]
(6) 查看每一列的數(shù)據(jù)類型和具體內(nèi)容
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網(wǎng)站 install.packages()
    Bioconductor BiocManager::install()
    github devools::install_github()

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

  5. R包安裝前需設(shè)置鏡像
    國內(nèi)鏡像推薦:
    清華鏡像
    中科大鏡像
    手工設(shè)置
    tools - global option - packages
    代碼設(shè)置
    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包不存在(復(fù)雜)
  • 報錯中由connection or url
    網(wǎng)絡(luò)/鏡像檢查
  1. R包如何使用--獲取幫助
    律罢?函數(shù)
    help函數(shù)
    R包介紹頁面
    少數(shù) R 包有 cheatsheets
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膀值,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子误辑,更是在濱河造成了極大的恐慌沧踏,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巾钉,死亡現(xiàn)場離奇詭異翘狱,居然都是意外死亡,警方通過查閱死者的電腦和手機睛琳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門盒蟆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踏烙,“玉大人师骗,你說我怎么就攤上這事√殖停” “怎么了辟癌?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荐捻。 經(jīng)常有香客問我黍少,道長寡夹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任厂置,我火速辦了婚禮菩掏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昵济。我一直安慰自己智绸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布访忿。 她就那樣靜靜地躺著瞧栗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪海铆。 梳的紋絲不亂的頭發(fā)上迹恐,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音卧斟,去河邊找鬼殴边。 笑死,一個胖子當(dāng)著我的面吹牛珍语,可吹牛的內(nèi)容都是我干的找都。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼廊酣,長吁一口氣:“原來是場噩夢啊……” “哼能耻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亡驰,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤晓猛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凡辱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戒职,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年透乾,在試婚紗的時候發(fā)現(xiàn)自己被綠了洪燥。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡乳乌,死狀恐怖捧韵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情汉操,我是刑警寧澤再来,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響芒篷,放射性物質(zhì)發(fā)生泄漏搜变。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一针炉、第九天 我趴在偏房一處隱蔽的房頂上張望挠他。 院中可真熱鬧,春花似錦篡帕、人聲如沸绩社。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愉耙。三九已至,卻和暖如春拌滋,著一層夾襖步出監(jiān)牢的瞬間朴沿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工败砂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赌渣,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓昌犹,卻偏偏與公主長得像坚芜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斜姥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容