生信者はこのようにR言語-ノートを学ぶべきだ.

7796 ワード

01.r言語およびrstudioエディタの紹介
rとrstudioをインストールしてrstudioエディタを開きます:4ブロック1.スクリプトを新規作成し、markdown、sourceコードを書き、どこでも次のステップに進みます.2.コマンドはconsoleで実行し、一歩一歩コードを実行し、上下左右のキーで履歴コマンド記録を見る.3.historyは履歴で、to sourceまたはto consoleで再実行できます.environment環境変数、付与された変数がこの位置に表示されます.4.filesはどのようなファイルがあるかまたはファイルplotを参照して描いた図を表示し、dev.off()はパネルpackagesを閉じてインストールされたすべてのパッケージを表示し、.libPaths()はパッケージインストールパスHelpを表示してドキュメントを助けて実行関数exampleを表示し、この関数の使用方法を体得する
現在のファイルの場所:getwd()02.R言語基礎変数説明
変数タイプ**1.ベクトルvector**a=c(1,2,3) b=c(1,'2',3) class()変数タイプを表示(aはnumeric、bはcharacter)
関数を使用してベクトルを作成するか、内蔵変数、左変数、右値を直接使用できます.数字は引用符をつけないで、文字列は引用符をつけます(*単引用符あるいは二重引用符は一般的に通用することができて、値の内で自身が単引用符を含む時、二重引用符を使う必要があります.例えば:a='Hello World!'a="Hello World!"の出力内容は同じです.b="This's a nice example."b='This's a nice example.'dim()と違います.)
2.マトリクスmatixベクトル次元はマトリクスa[,]次元であり、マトリクスのいずれかの要素タイプが変化し、他の要素のタイプも変化する.要素の取り方:1.下付きで取り、カンマの左が行、右が列class()です.2.論理符号取得判定要素タイプ:str(),data.frame()3.配列array
4.save(filename,file='input.Rdata')データ・ボックスは、1つの要素のタイプを変更します.他の要素のタイプは変更されません.
is.系列関数,as.系列関数は何の関数であるか,遷移はなぜ関数であるか(Tableキーで補完すると多くの関数が見られる)
質問方式新規フォルダを作成し、質問/エラーが必要な「.Rproj」とコード「.R」にエラーが表示された場所を入れて圧縮パッケージを送ります.変数がある場合は、エラーを報告する前にload(file='input.Rdata') length()と書き、loadの前のコードを注釈します(
5.リストリストリストは'$'でリストから取り出したのは要素で、データボックスから取り出したのは1列のlapply()のどれだけの要素で、unlist()は各要素に対して操作して、listを返して、as.numeric()で戻り値をcharacterにして、b[,]でそれを数値型に変えます.
ひょうをはずす
  • インデックスb[,c(F,F,T,F,F,)]カンマ左行右列を下付きで取得します.この要素がなければ、NAを返します.ある場合は、対応する要素
  • を返します.
  • は、bの第3列の要素
  • を判断方式で取り外す.read.table()関数table grep()#探索関数を読み出し、例grep('RNA-Seq',a$Assay_Type) aのAssay_を探索するType列では、RNA-Seqを含む下付き文字を検索します.grepl()#一致したすべての行を取り、TRUE/FALSE、例grepl('RNA-Seq',a$Assay_Type)に戻る
    リストlist[]を取って元素を取って、元素の中の内容を取ることができなくて、出した元素はやはりリストで、もし[[*]][*]で取り出したのが元素の中の内容ならば
    03.外部データのインポート・エクスポート
    読み込み1.直接import dataset 2.コードでread.table('filename',sep='\t',header = T)#パラメータとパラメータをカンマで区切り、sepはタブを指定し、headerにヘッダーを付ける.write.csv()#csvファイルとして読み出される
    b第1列をbの行名として取り、第1列row.names(b)=b[,1] b=[,-1]を除く
    読み込み時のフォーマットの変更を避けるため、R読み取りのフォーマットとして保存します.
    04.中間変数操作
    読み込みデータsave(b,file = 'b_input.Rdata') load(file = 'b_input.Rdata')#手動でコメントを指定します.冒頭のcomment.char="!
    csvファイルを読み出し、行名を削除する2つの方法read.table(filename,header = T,sep = '\t') read.table(tablename,comment.char = "!",header = T,sep = '\t')英文の単語は関数で、関数はパラメータがあって、互いに通じ合うwrite.csv(b,'tmp.csv',row.names=F)#分類write.table(b,'tmp.csv',sep = ',')#の最大値sort()#の最小値max()#は最小値を含んで、25%の分位数、中位数、75%の分位数、最大値min()#は何個の要素fivenum()#のグループを見てドメインの値を取って、boxplotでピークの数の先のグループを見ることができて、それぞれ値を割り当てて、"="は値を割り当てて、"="は判断で、table()#aの中でAssay_typeの列におけるRna-Seqに対応する行boxplot(y~x)#aにおけるAssay_typeという列のWXSに対応する行
    表現マトリクス、異なる表現量rna=a[a$Assay_type=='Rna-Seq',]#bの第1行の平均値が間違っていることを報告して、そのタイプwxs=a[a$Assay_type=='WXS',]#が数値型の平均値str(mean(b[1,]))#に変換されたことを見て、すべての行に対して平均値を取って、上位10個を見ます
    b中行の平均値をとるmean(as.numeric(b[1,]))#直接用関数head(rowMeans(b))#用サイクルrowMeans(b)#apply関数for (i in 1:nrow(b)){ print(mean(as.numeric(b[i,])))}#は前と同じ
    関数を直接使用できる関数があります.定義された関数で操作できる関数はありません.
    ベクトルは元素を取って直接下标を书いて、apply(b,1,function(x){mean(x)})apply(b,1,mean)は元素を取って[,]左は行を取って右は列を取ります
    top 50の分散に対応する遺伝子名熱図rowMax=function(x){apply(x,1,max)} rowMax(b) data.frame() list() cg=names(sort(apply(b,1,sd),decreasing = T)[1:50])#ランダムに50個の分散を選択
    05.熱図
    異なるサイズのデータが基準に達し、異なる色の濃淡library(pheatmap)#ランダム正規分布
    熱図を描く
    a1=rnorm(100)
    #dim   
    dim(a1)=c(5,20)
    a2=rnorm(100)+2
    dim(a2)=c(5,20)
    #as.data.frame       
    b=as.data.frame(cbind(a1,a2))
    #paste   a1 a2       b         ,
    names(b)=c(paste('a1',1:20,sep = '_'),paste('a2',1:20,sep = '_'))
    #  pheatmap 
    library(pheatmap)
    #     
    tmp=data.frame(group=c(rep('a1',20),rep('a2',20)))
    rownames(tmp)=colnames(b)
    pheatmap(b,cluster_cols = F) #cluster_cols = F      
    

    pheatmap学習、example pheatmap(b[1:50,])の表示
    06.差異名の明らかな遺伝子の発現マトリックスを選択して熱図を描く
    #   (normalization)        ,  -scale-  。
    n=t(scale(t(dat[cg,])))
    n[n>2]=2#         
    n[n
    pheatmap(sample(1:nrow(b),50))#scale関数の使用方法の表示
    コードが長すぎる場合は、関数を定義してコードを包むことができます.必要に応じて、コードrnorm(n, mean = 0, sd = 1)を繰り返しないで直接書くことができます.
    07.id変換
    #  a V1      '.'     ,    ‘.’    
    library(stringr)#  stringr
    str_split(a$V1,'[.]',simplify = T)[,1]# str_split()  ,simplify=T         ,F        ,[,1]    
    
    library(org.Hs.eg.db)#  org.Hs.eg.db 
    toTable()#org.Hs.eg.db        toTable
    
    #        ,           /  ,           
    merge(a,b,by='*',all.x=T)
    #     ,   1    
    table(table(*)>1)
    table(*)[table(*)>1]
    #dataframe(d)    
    d=d[!duplicated(),]
    #a       b   
    match(a,b)
    

    08.任意遺伝子任意癌発現量グループの生存分析
    一つの遺伝子はTCGAデータベースの中の各癌の生存分析のホームページの中で興味のある遺伝子を入力して、グループ(高低の発現量)、データをダウンロードして、Rstudioの中でデータを読み込んで、ggstatsplotパッケージの中のコードは分析します
    a=read.table('*.csv',header = T,sep = ',',fill = T)
    ggbetweenstats(data=a,x='Group',y='Expression')
    

    GroupとExpressionを追加するには、エラーや認識しないようにコピーしたほうがいいです.基礎変数と関数の操作をマスターして、それからパッケージの説明書に対して学習を行って、データの応用
    09.任意遺伝子任意癌発現量と臨床性状関連
    Webページに興味のある遺伝子を入力し、データをダウンロードし、Rstudio ?pheatmap列名を導入して簡単な値を与え、datは前に書いたコードと一致し、コードを変更することなく直接実行できる(個人的な習慣)
    colnames(a)=c('id','stage','gene','mut')
    dat=a
    

    10.表現マトリックスのサンプルの相関?scale()関連関数
    #   Bioconductor   ,  R  3.5.0
    if (!requireNamespace("BiocManager"))
        install.packages("BiocManager")
    BiocManager::install()
    

    Bioconductorの3つのパケット:airway(パケット)、Annotatiobdbi(注釈パケット)、GenomicFeatures(機能関数パケット)
    #    ,      ,    , dim()            
    data(airway)
    exprSet=assay(airway)
    colnames(exprSet)
    dim(exprSet)
    #           ,
    cor(exprSet[,1],exprSet[,2])
    

    相関性が高い2つの状況を警戒する1.同じサンプル技術を繰り返す2.多くの数値は低発現値またはゼロであり、真実の相関性を隠すd_h
    d_h(dat,group_list)#サンプル を とする
    #    ,                 5, dim()            ,      dim()   
    x= exprSet[1,]
    table(x>1)
    true=1,false=0
    sum(x>1)>5
    exprSet= exprSet[apply(exprSet,1,sum(x>1)>5),1]
    #    ,edgeR::cpm()          ,mad  50        
    #  cor   ,   
    M=cor(log2(exprSet+1))
    
    # heatmap      ,   (group_list)        ,     (      ,            )tmp=data.frame(g=group_list)
    rownames(tmp)=colnames(M)
    library(pheatmap)
    pheatmap(cor(exprSet),annotation_col = tmp)
    

    11.チップ マトリックス
    マトリクス、パケット の
    #       
    t.test(exprSet[1,]~ group_list)
    boxplot(exprSet[1,]~ group_list)
    #  limma() ,    design  ,           (  1)   (  0)
    

    12.RNA-seq マトリックス a=read.table('*.txt',header = T,sep = '\t',fill = T) cor() マトリックス、パケット 、cor(exprSet)パケット :statquest