r語言提取cvs資料_乾貨|R語言生物資訊大資料分析基礎入門
阿新 • • 發佈:2021-01-03
技術標籤:r語言提取cvs資料
R是一個自由、免費、開放的軟體。具有強大的資料處理能力,越來越多的科研工作者也開始使用R語言處理科研資料,發表論文、文章。
牛頓曾經說過:如果說我看得比別人更遠些,那是因為我站在巨人的肩膀上。而R語言就是“巨人的肩膀”。但對於很多不是生信專業出身,卻又需要 R 來統計及繪圖的科研小夥伴來說,熟練使用 R 還是一項具有難度的挑戰。今天介紹的R語言基礎入門,希望能幫助到大家。
良好的R使用習慣
R支援中文,但不好!建議用全英文環境。
R語言具有嚴格的符號與語法控制,建議使用純文字編輯工具編寫R程式碼(注意中文符號)。
使用R時,要先設定工作目錄(getwd(), setwd())。
R可以使用Tab鍵自動補齊命令列。
設定R預設啟動項
file.edit('~/.Rprofile')#bioconductoroptions(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")#CRANoptions(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")
R包管理
install.packages("ggplot2") 安裝R包library(ggplot2) 載入R包update.packages() 將所有的包進行更新
更新R版本
install.packages("installr")require(installr)updateR()
R中的資料物件與資料操作
賦值與註釋
a = 2 # R中對變數的名字大小寫敏感,a與A是不同的a a b c
資料物件
標量
向量
因子
矩陣
陣列
列表
資料框
資料物件通常有三個屬性:型別、值、變數名稱
舉例
標量
a a = 3.14m x TURE -> y> y[1] TURE> x[1] FALSE
向量
a 1,b "one",c # 使用函式rep(), seq(), ":"生成向量d 2,times=> d[1] 2 2 2 2e from=> e[1] 3 6 9 12 15 18 21f 1:> f [1] 1 2 3 4 5 6 7 8 9 10# 向量提取元素> a[1][1] 1> a[c(1,5)][1] 1 5> a[1:3][1] 1 2 3> a[a<5][1] 1 2 3 4 # 通過判斷來提取元素> a[a>5][1] 6 7 8 9 10> a[-c(1,5)][1] 2 3 4 6 7 8 9 10 # 去除向量中的元素a[5] 12> a [1] 1 2 3 4 12 6 7 8 9 10 #替換元素a 12,> a [1] 1 2 3 4 5 12 6 7 8 9 10 # 新增元素
因子
# 因子是一種特殊型別的字元型向量# 建立一個字元向量或整數向量# 使用 factor()函式將其轉為因子b "one",b > b[1] one two threeLevels: one three two
矩陣
矩陣是一個二維陣列函式matrix()用於建立矩陣y 1:> y [,1] [,2] [,3] [,4][1,] 1 6 11 16[2,] 2 7 12 17[3,] 3 8 13 18[4,] 4 9 14 19[5,] 5 10 15 20y 1:> y [,1] [,2] [,3] [,4][1,] 1 2 3 4[2,] 5 6 7 8[3,] 9 10 11 12[4,] 13 14 15 16[5,] 17 18 19 20
資料框
patientID age status patientDate > patientDate patientID age status1 1 25 poor2 2 34 improved3 3 28 poor4 4 52 good> NCBIdata Year BasePairs1 1991 11002 1992 12003 1993 13004 1994 14005 1995 15006 1996 16007 1997 17008 1998 18009 1999 190010 2000 2000# 按照條件提取> NCBIdata[NCBIdata$Year>1998,] Year BasePairs9 1999 190010 2000 2000 NCBIdata[NCBIdata$Year>1990 & NCBIdata$BasePairs>1700,] Year BasePairs8 1998 18009 1999 190010 2000 2000> NCBIdata[,c("Year")] [1] 1991 1992 1993 1994 1995 1996[7]1997199819992000
列表
rec "LiMing",age=> rec$`name`[1] "LiMing"$age[1] 18$scores[1] 85 76 90
R中的基礎函式及程式設計
函式形式:函式(輸入資料,引數=)
平均值:mean(x,trim=0,na.rm =FALSE,...)
線性模型:lm(y~x,data=test)
R字元資料操作函式
字符合並
>paste("abc","bc")[1] "abc bc">paste("abc","bc",sep="")[1] "abcbc"
字元取長度
>nchar("abcccc")[1] 6
字元取子集
> substr("abcdef",2,3)[1] "bc"> substring("abcdef", 3)[1] "cdef"substring("abcdef", 1:6, 1:6)[1] "a" "b" "c" "d" "e" "f"> substr(rep("abcdef", 4), 1:4, 4:5)[1] "abcd" "bcde" "cd" "de"
程式設計基礎
函式名 {
異常處理;
表示式(迴圈/判別);
return(返回值);
}
輸入直角三角形的兩個邊,求斜邊長rcal function(x,y){ z 2 + y^ result return(result)}rcal(3,4)
流程控制 if
if (條件)表示式,或if (條件)表示式1 else 表示式2
p = 0.03if (p < = 0.05) { print("p <= 0.05!")} else { print("p > 0.05!")}x = 3y if (x==2) x
條件與邏輯運算
判斷相等 x==y
判斷小於等於 x<=y
判斷大於等於 x>=y
邏輯“與”運算 x && y
邏輯“或”運算 x || y
邏輯“非”運算 !x
向量的邏輯“與” x & y
向量的邏輯“或” x | y
迴圈 for,while
for (i in 1:10) print (i)a for (i in 1:10){ a }> a[1] 10i while (i <10) { print (i); i
資料的輸入與輸出
read.table()read.csv()write.table()write.csv()
免責宣告:來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理。本宣告未涉及的問題參見國家有關法律法規,當本宣告與國家法律法規衝突時,以國家法律法規為準。
•END•